我们有java代码来管理kafka流使用者读取四个分区主题的线程池(因此我们有四个使用者线程)。动态检索分区数的建议方法是什么,以便线程池cat中的初始化代码设置正确的线程数?能够动态地调整以适应越来越多的分区不是一个要求。查看javaapi(v.0.8.1),我找不到一个简单的方法来实现它。目前我正在浏览scala源代码,我看到了一些很有前途的类(这个问题的scala解决方案也很受欢迎),但是我也想问问社区,以防有人已经找到了一个很好的方法。谢谢,
ttcibm8c1#
比分区多的线程将以空闲线程结束,因为每个分区只能由一个使用者线程使用。另一方面,分区比线程多最终会导致每个线程消耗多个分区,从而影响性能。因此,为了使它简单,只需使用与分区数量完全相同的线程。如果你发现性能有问题,也许你应该有更多的分区和线程。
hm2xizp92#
您不需要让使用者线程计数与分区计数匹配。只需制作一些消费线程,以最大限度地提高您的消费能力(例如,如果您使用大量cpu,则大约2倍的内核;如果您使用大量i/o,则根据其性质增加或减少内核)。
2条答案
按热度按时间ttcibm8c1#
比分区多的线程将以空闲线程结束,因为每个分区只能由一个使用者线程使用。另一方面,分区比线程多最终会导致每个线程消耗多个分区,从而影响性能。
因此,为了使它简单,只需使用与分区数量完全相同的线程。如果你发现性能有问题,也许你应该有更多的分区和线程。
hm2xizp92#
您不需要让使用者线程计数与分区计数匹配。只需制作一些消费线程,以最大限度地提高您的消费能力(例如,如果您使用大量cpu,则大约2倍的内核;如果您使用大量i/o,则根据其性质增加或减少内核)。