【发布时间】:2017-01-02 10:35:59
【问题描述】:
我有 kafka 集群,在一台机器上有 12 个代理,在同一台机器上有一个 zookeeper 我使用 kafka-python 来生成消息
producer = KafkaProducer(bootstrap_servers='localhost:9092' , acks=0 , linger_ms=10000 , batch_size=2000000 , buffer_memory=1003554432)
for i in range(50000):
#50 Bytes message
msg= 'FDASFAFAFAFAFADDFASFADFAFDASFAFFFFFFFFFFFFFFFFFFF'
#my_topic has 12 partitions , kafka cluster has 12 brokers in single machine
producer.send('my_topic', msg)
当我运行我的 python 代码时,我实现了 20,000 的吞吐量(每秒消息数) 但是,当我同时运行多个相同的 python 代码时,我实现了相同的吞吐量(每秒 20,000 条消息)
当我运行单个生产者时如何获得更好的吞吐量??
我测试了许多 batch.size 和 linger.ms 值,但我无法获得更好的性能
【问题讨论】:
-
可能想看看其他一些 Kafka python 基准,看看你是如何比较的。在同一台机器上运行 12 个代理和一个 zookeeper 对性能来说并不是一个很好的配置。检查您的消息是否确实发送到所有 12 个分区,并且一次没有遇到瓶颈。 activisiongamescience.github.io/2016/06/15/…
-
@HansJespersen confluent 效果更好,我每秒 50,000 与 conluent kafka,谢谢你的回答
标签: apache-kafka