_疾风知劲草 2016-05-09 11:56 采纳率: 100%
浏览 1342
已采纳

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

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

  • 写回答

1条回答

  • sxwws 2016-05-10 01:40
    关注

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题