Kafka接收消息

文章目录

java 复制代码
// 采用监听得方式接收 @Payload标记消息体内容.
@KafkaListener(topics = {"test"},groupId = "hello")
public void onEvent(@Payload String event,
                   @Header(value = KafkaHeaders.RECEIVED_TOPIC) String topic,
                   @Header(value = KafkaHeaders.RECEIVED_PARTITION_ID) String partition){
   System.out.println("读取到了时间消息: " + event);
}

Acknowledgment

开启手动确认模式;

java 复制代码
listener:
	ack-mode: manual
java 复制代码
// 采用监听得方式接收 @Payload标记消息体内容.
@KafkaListener(topics = {"test"},groupId = "hello")
public void onEvent(@Payload String event,
                   @Header(value = KafkaHeaders.RECEIVED_TOPIC) String topic,
                   @Header(value = KafkaHeaders.RECEIVED_PARTITION_ID) String partition,
                   ConsumerRecord<String,String> record,
                   Acknowledgment ack){
   ack.acknowledge(); // 手动确认,告诉kafka服务器该消息我已经收到了. 
   System.out.println("读取到了时间消息: " + event);
}

读消息指定分区

java 复制代码
@KafkaListener(groupId = "hello",
           topicPartitions = {
               @TopicPartition(
                       topic = "${kafka.topic.test}",
                       partitions = {"0","1","2"}, // 0 1 2分区不限制偏移量
                       partitionOffsets = { // 3 分区只读 3偏移量之后的; 4分区只读 4偏移量之后的
                               @PartitionOffset(partition = "3",initialOffset = "3"),
                               @PartitionOffset(partition = "4",initialOffset = "3")
                       })
           }
)

批量消费

修改配置

java 复制代码
kafka:
    bootstrap-servers: 192.168.225.128:9092
    listener:
      type: batch
    # 每次读取20条
    consumer:
      max-poll-records: 20

消费者端接收一个List即可

java 复制代码
@KafkaListener(topics = {"hi"},groupId = "batchGroup2")
public void onEvent3(List<ConsumerRecord<String,String>> records){
    System.out.println(records.size());
}

消息拦截

相关推荐
猫猫不是喵喵.28 分钟前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
lsc_blog2 小时前
听到优化风声,先准备能由自己掌控的事
数据库·分布式·中间件·职场和发展·重构
墨痕诉清风2 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
Ashe8135 小时前
MySQL 慢日志先别急着加索引:三个指标能拦掉大半误判
数据库
ClouGence5 小时前
最基础的异构数据库 DDL 同步,我们踩过哪些坑?
数据库·mysql·postgresql
羑悻的小杀马特6 小时前
Redis持久化三剑客:RDB二进制快照、AOF文本日志、混合模式如何守护你的数据安全?
数据库·redis·缓存·aof·持久化存储·rdb
小呆爱发呆6 小时前
第三章 MySQL 库表操作
数据库·mysql·adb
时间的拾荒人7 小时前
Redis 进阶实战:渐进式遍历、持久化机制与事务详解
数据库·redis·缓存
普通人68 小时前
MySQL_FIND_IN_SET函数详解
android·数据库·mysql