我有一个Kafka version : 0.9.0.1
应用程序正在与ack=all
同步发送消息。
通过此设置,我每秒可以获得一条消息。 75。
当我更改为ack=1
时,我将吞吐量提高到每秒453条消息。
为什么ack=all
运行速度慢6倍?
我的目标Kafka主题有一个分区,复制设置为3。
我有什么方法可以提高ack=all
答案 0 :(得分:1)
没有办法因为ack设置是为了在性能和丢失数据的变化之间进行权衡。 所以,你不能同时选择两者。
答案 1 :(得分:1)
有什么方法可以提高ack = all的性能吗?
启用消息重试时使用异步发送。消息将以批量方式发送,您将获得更好的吞吐量。
异步发送并不意味着丢失数据,可以利用消息重试和消息发送回调来保证发送成功,即使(replication factor - min.insync.replicas)
代理已经失效。