首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kafka没有producer发送的消息

kafka没有producer发送的消息
EN

Stack Overflow用户
提问于 2019-05-16 22:12:30
回答 1查看 195关注 0票数 2

我使用spring框架和kafka,它有3个代理集群。我发现消费者没有消费一些消息(假设所有发送的消息之间有0.01%),所以在生产者代码中,我记录了api返回的消息偏移量:

代码语言:javascript
复制
ListenableFuture<SendResult<String, Message>> future = messageTemplate.sendDefault(id, message);
SendResult<String, Message> sendResult = future.get();
String offset = sendResult.getRecordMetadata().offset();

我使用return offset查询所有分区的kafka topic,但是没有找到该消息(我测试了消费者使用的和他们在kafka中的消息相关的其他偏移量),问题是什么,如何确保该消息发送到kafka??

我还在producer中使用了messageTemplate.flush();

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-29 17:05:04

我发现,当Kafka broker的topic leader关闭时,Kafka将重新平衡自己,另一个broker成为该分区的领导者,如果ack配置未设置为all,则此过程中有可能丢失一些数据。因此,将配置更改为

代码语言:javascript
复制
ack=all

此外,如果同步副本中的最小值小于2,则有可能丢失数据,因此至少将其设置为2。

代码语言:javascript
复制
min.insync.replicas = 2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56170604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档