kafka 生产者调用MessageChannel.send() 消息发送确认问题

流川枫 发表于: 2016-09-02   最后更新时间: 2016-09-02 19:02:09   12,762 游览

首先描述一下我的项目,springmvc与kafka整合用了spring-integration-kafka,1.3.0版本的。producer发日志主要用了MessageChannel.send()这个方法,kafka接收消息最大值我设置了5M,然后我就用一个4M文件以及5.2M文件作为消息内容测试,但是MessageChannel.send()每次都是返回true,很明显,4M文件kafka集群可以接收,返回true正确,而5.2M文件kafka集群是接收不了的,所以,请问下生产者如何才能确定消息被kafka集群成功接收?
看了一下kafka官方,单纯的0.10kafka-cilent.jar是有提供callback的,但是因为是整合到spring里面的,希望有热心人解答一下

发表于 2016-09-02
添加评论

kafka发送有几种模式
1、发送不应答
2、发送主节点应答
3、发送主节点和备节点都应答。
spring-integration-kafka我以前看了下,只是浅显的连接,因为kafka只支持0.8,所以就没有使用了,你可以依照上面3种模式找一下。
callback()是挺好用的,整合在spring也是可行的。

流川枫 -> 無名 7年前

你的意思是不引用spring-integration-kafka这个jar包,而是直接引用spring框架还有 0.10kafka-cilent.jar就好?这样不引用spring-integration-kafka效率会不会差?

無名 -> 流川枫 7年前

我们是弃用了,用spring自己封装的,kafka很简单,你把它当数据库来看,每个连接用连接池实现,一样的(因为我们用了同步,而非异步)。

你的答案

查看kafka相关的其他问题或提一个您自己的问题