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());
}

消息拦截

相关推荐
Skilce4 小时前
ZrLog 高可用部署
运维·服务器·数据库·阿里云·maven
indexsunny7 小时前
互联网大厂Java求职面试实战:微服务与Spring生态全攻略
java·数据库·spring boot·安全·微服务·面试·消息队列
沪漂阿龙7 小时前
别再让数据库“吃”脏数据了!一文讲透MySQL约束,从入门到精通
数据库·mysql
2401_873544929 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
虾..9 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP9 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
ybwycx9 小时前
mysql重置root密码(适用于5.7和8.0)
数据库·mysql·adb
绿算技术10 小时前
OpenClaw × GP Spark:本地智能与极速存储的终极融合
大数据·分布式·spark
色空大师10 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
亚历克斯神11 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos