我们在kafka生产者中使用幂等生产者模式,因为我们希望将数据准确地一次完整地存储在代理中。这种减慢的速度是因为对代理的最大运行中请求最多只能为5。另外,在2 min.insync.replicas和幂等生产者的情况下,我发现100k消息突发的平均延迟在生产者所在的同一台机器上大约为20ms到30ms,消费者和kafka经纪人正在运行。
关于如何改善等待时间同时保持语义“恰好一次且无间隙且有序”的任何建议。此外,消息是金融交易/报价消息,因此我们不希望任何数据丢失或缺口。
答案 0 :(得分:0)
对于我们的一个电信用例,数据量要大得多,并且消息必须是唯一的,因此我们将数据转储到具有关键列唯一索引的DB上,并使用kafka-connect从源和进一步的业务逻辑中读取数据。
优点是您无需编写自定义逻辑即可在处理之前分析数据,并且可以保证唯一的消息。