问题描述
速率限制:由于Kafka能够以比MQ可以消耗的速率高得多的速率生成消息,因此我们可以在kafka使用者上进行一些配置设置以启用速率限制传输来保护MQ的稳定性吗?
还具有一次语义-了解kafka支持一次语义,这将阻止重新传输已由消费者使用的消息。有人可以指导我如何设置此配置吗?
我们在组织中使用融合的kafka企业版。
解决方法
速率限制: Kafka基于pull,因此您的消费者可以安心地读取消息并将其传输到MQ(但是,如果第二个系统持续变慢,则未处理的缓冲区卡夫卡中的消息会随着时间的增加而增加。
语义恰好为一次:为确保exactly once sematic对于消费者,您需要在消息成功处理后手动提交读取偏移量(默认行为是在较小超时后自动提交读取偏移量。如果失败发生在提交读偏移量之后但在消息处理结束之前,则可能导致消息丢失。