key shared 消费者增加减少需要解决的问题?

不羁岁月 提交于 2020-08-11 02:32:09

key shared 消费者增加减少需要解决的问题?

1.解决顺序问题
让新加进来的consumer 等前面的消息都签收掉在分发给他消息就可以。
缺点:增加所有消费者的消费延迟时间!(所有的消费者暂停,直到新的消费者加入之前,读取的所有消息被确认为止)

1.1缓冲区优化: 加了一个缓冲区,把消息发到缓冲区,老的消费者根据hash算法消费属于自己的消息。发给新消费者的消息暂存在缓冲区。新的消费者属于暂停状态。老的消费者可以继续消费新的消息。

1.2新增缓存区缺点:当频繁变动消费者数量时,需要复杂的逻辑处理,来保证消息的顺序性。缓存区满后,所有消费者进入暂停状态


2解决hash分配均匀问题
2.1一致性hash槽,类似redis 集群hash槽
2.2hash range 2 分法(扩容找到最大的平均分配,缩容找到最小的)




https://github.com/apache/pulsar/pull/6977 https://github.com/apache/pulsar/pull/7106
https://github.com/apache/pulsar/pull/6791

 

 


topic

游标  
0-100

1.
游标0-5  游标6-10    |       (游标为10的时候c3加入)
c1       c2                  c3加入 

2. 缓存区(c1,c2继续消费属于自己的消息 | c3等游标10确认后推给c3消息)

0-5(11-13) |  6-10 (14-16)   | 17 - 20 
c1              c2                c3
https://pulsar-summit.org/ 有兴趣也可以报名听听


智联当时也用 pulsar sql https://streamnative.io/blog/tech/2020-05-07-zhaopin-tech-blog/

https://streamnative.io/blog/tech/2018-12-05-simplifying-zhaopin-event-center-with-apache-pulsar/
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!