2 youxiaxiaomage youxiaxiaomage 于 2016.05.09 19:56 提问

有关kafka消费者的问题,描述如下

现在有个问题请教下:有谁了解kafka,现在的问题就是我要读某个group中的固定个数分区的东西,然后consume这些数据的时候我要启用多线程读取,怎么保证我的数据不会重复(个人认为是不是偏移量就可以看出是否重复),每个线程读到一堆数据后,然后解析成单个对象,再启动不同的线程入库,这种话多线程套多线程效率是不是会很低,多节点部署这个应用会平分这个执行效率,请问怎么解决这类问题

3个回答

sxwws
sxwws   2016.05.10 09:40
已采纳

你的这个结构首先要换一下。
如果你要去读取group中不同分区中的数据。对于你的consumer端来说,应该是1对1进行读取,也就是说,一个java进程对应一个分区partition。

你自己所想的,用一个java进程去监听多个分区,那你就应该让producer端将数据都放到一个partition中即可。这主要还是取决于你的消息数量和
你的处理速度。这个你应该是很好评估的。

至于你有没有处理重复的消息,这个你大可不必关心,这是消息中间件最基本的保证,kafka虽然事务性比较弱,如果你特别看重这点,你可以换
其他的消息中间件,也是可以的。比如activemq等。

youxiaxiaomage
youxiaxiaomage   2016.05.09 20:36

这么久了还是没人来回答我的问题吗?好伤心

CSDNXIAON
CSDNXIAON   2016.05.10 01:42

POSIX信号量与生产着消费者问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!