一个javakafka使用者需要多少操作系统资源?

v440hwme  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(273)

我想用成千上万的Kafka。例如,我需要 100_000 一些架构模式的消费者。我在想,可以吗?或者我应该重构我的系统,为整个系统使用很少的使用者(例如, 10 消费者而不是 100_000 ).
所以,我的问题是:
connection pool 在Kafka消费,还是每个消费者创建自己的连接Kafka经纪人?
thread pool 在kafkaconsumer中,或者每个消费者创建自己的线程(我希望不是这样)。
每个Kafka消费者的平均内存消耗是多少?
你觉得这样的建筑模式怎么样?

mspsb9vt

mspsb9vt1#

1,2)使用者从作为分区领导者的一个代理请求元数据。每个使用者都能够处理来自单个线程的所有io,因为java客户机是围绕由用户驱动的事件循环设计的 poll() . 您还可以构建多线程使用者,但需要注意偏移管理。有关java客户机实现的更多详细信息,请参阅confluent的文档。
3) 根据ApacheKafka和ConfluentEnterpriseReferenceArchitecture,
消费者每个消费者至少使用2mb,如果来自代理的响应较大,则最多使用64mb(典型的突发流量)
4) 你提到的消费者数量是巨大的,所以你需要一个很好的理由去争取10万消费者。不过,这要视情况而定,但即便是netflix也应该少用很多。

相关问题