当前位置:   article > 正文

kafka使用_使用多线程增加kafka消费能力

kafka通过一系列优化,写入和读取速度能够达到数万条/秒。通过增加分区数量,能够通
cd2cfb163fed308fc967b9487b4f0c55.gif

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

前提:本例适合那些没有顺序要求的消息主题。

kafka通过一系列优化,写入和读取速度能够达到数万条/秒。通过增加分区数量,能够通过部署多个消费者增加并行消费能力。但还是有很多情况下,某些业务的执行速度实在是太慢,这个时候我们就要用到多线程去消费,提高应用机器的利用率,而不是一味的给kafka增加压力。

9927e426b8c3ce2ec799b05438cf49eb.png

使用Spring创建一个kafka消费者是非常简单的。我们选择的方式是继承kafka的ShutdownableThread,然后实现它的doWork方法即可。


参考:

https://github.com/apache/kafka/blob/2.1/examples/src/main/java/kafka/examples/Consumer.java

多线程消费某个分区的数据

即然是使用多线程,我们就需要新建一个线程池。

c87bf02094a86ea184cc46217f59091e.png

我们创建了一个最大容量为20的线程池,其中有两个参数需要注意一下。(参考

《JAVA多线程使用场景和注意事项简版》

)。

我们使用了了零容量的SynchronousQueue,一

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/491611
推荐阅读
相关标签
  

闽ICP备14008679号