kafka多Consumer消息分发问题

说好不能打脸
Java领域优质创作者
博客专家认证
2014-08-21 04:55:13
情况是这样的,在我们系统中有多个Consumer的客户端(客户端个数是不确定的,因为在系统工作过程中有的业务节点会脱离,有些业务节点会增加进来),Producer也有多个。

但是Producer发送的消息种类只有一种,所以topic只创建了一个, 消息量很大,所以使用了多个Consumer来处理。

现在想实现如下的订阅/推送效果,

多个Producer进行消息的推送,例如消息X1、X2、X3、X4、X5.。。。。。。然后由多个Consumer分别进行拉去,

Consumer1拉取到:X1、X4、X7。。。
Consumer2拉取到:X2、X5、X8.。。。
。。。。。如此类推

请问问各位大神,这个效果应该怎么配置呢?
...全文
18906 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
独自旅行Ysh 2018-08-11
  • 打赏
  • 举报
回复
建议编程,因为设计好的基础是你得是一个厉害的程序员,要不然做设计发展不大。
YY98269826 2018-06-03
  • 打赏
  • 举报
回复
我现在在学计算机,马上分专业了,可是不知道学设计好还是编程好,能帮我分析下么
sdfdsfsfxxx 2017-01-09
  • 打赏
  • 举报
回复
设置key进行hash到同个partition
Vanquishing 2016-10-01
  • 打赏
  • 举报
回复
虽然过了很久但是看到还是想说说自己的想法: 可以在一个topic下开两个partition,然后producer在send消息的时候指定partition,这样可以保证在产生的时候就进行分组,以为消费的时候只能顺序消费,kafka是不允许消费者进行随机读写的,所以必须从生产者端就考虑分组。 然后开两个消费者,每个消费者在topicCountMap的时候只开一个线程,可以保证两个消费者去消费不同的partition 这算是我的猜测拙见吧
baidu_22548363 2016-04-13
  • 打赏
  • 举报
回复
用多个partition和多个consumer去消费,因为在kafka的设计中,一个partition是不允许并发的,所以在你的设计中,只有一个consumer可以fetch到message。
yuyu051803818578 2015-12-08
  • 打赏
  • 举报
回复
@yinwenjie 现在这个完成了吗?
说好不能打脸 2014-08-22
  • 打赏
  • 举报
回复
感谢这位大哥的分享了,有一些借鉴作用。
zhxianbin 2014-08-21
  • 打赏
  • 举报
回复
引用 5 楼 yinwenjie 的回复:
大哥能说详细点吗?我在开发包里面好像没有看到Dispatcher 相关的内容,网上查了查好像也没有。。。。
我理解错了,我以为自己设计的,kafka 没做过
说好不能打脸 2014-08-21
  • 打赏
  • 举报
回复
目前我的做法是这个topic下面只创建一个Partition。然后所有的Consumer 放到一个group里面,这样是这些Consumer 只有一个能够收到message,其他的Consumer 一直收不到消息。。。。
说好不能打脸 2014-08-21
  • 打赏
  • 举报
回复
大哥能说详细点吗?我在开发包里面好像没有看到Dispatcher 相关的内容,网上查了查好像也没有。。。。
zhxianbin 2014-08-21
  • 打赏
  • 举报
回复
应该是 procuder 写队列,Dispatcher 读队列,然后分发给 Consumer
说好不能打脸 2014-08-21
  • 打赏
  • 举报
回复
版主帮帮看看吧
说好不能打脸 2014-08-21
  • 打赏
  • 举报
回复
对的,大概就是这个意思,有点像AMQP消费者自带的那种消息分发
zhxianbin 2014-08-21
  • 打赏
  • 举报
回复
楼主的意思是多个 producer 随机产生消息顺序存放, 但多个 Consumer 轮流顺序获取?

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧