美文网首页
(10)Consumer多线程实例(2)

(10)Consumer多线程实例(2)

作者: hedgehog1112 | 来源:发表于2021-03-01 10:35 被阅读0次

    Kafka 0.9推了Java版本consumer(替换Scala版本),优化coordinator摆脱对zk依赖。

    Consumer(非线程安全)和Producer(安全)不同,两种实现方法:

    1、每个线程维护一个KafkaConsumer

    优点:方便实现、速度,易维护分区内消息顺序

    缺点:1)更多TCP连接开销(每个线程都要维护若干TCP连接)

               2)扩展性差,限于topic分区数

               3)频繁请求导致吞吐量下降,处理可能超时,造成rebalance

    2、维护一/多个KafkaConsumer,同时维护多个事件处理线程(worker thread)(推荐)

    优点:伸缩性好,可扩展consumer和worker

    缺点:1)实现麻烦    2)难维护分区内消息顺序    

               3)处理链路长保证提交位移正确

    ps:还可多个变种:每个worker线程自己队列。consumer按规则将消息放入不同队列

    方法1

    ConsumerRunnable类

    ConsumerGroup类

    ConsumerMain类

    方法2

    Worker类

    ConsumerHandler类

    Main类

    https://www.cnblogs.com/huxi2b/p/6124937.html

    相关文章

      网友评论

          本文标题:(10)Consumer多线程实例(2)

          本文链接:https://www.haomeiwen.com/subject/anpnfltx.html