@RetryableTopic 重试主题的正确数量 Partitions/Replicas

Correct Number of Partitions/Replicas for @RetryableTopic Retry Topics

你好 Stack Overflow 社区和任何熟悉 spring-kafka 的人!

我目前正在开发一个项目,该项目利用 spring-kafka 的 @RetryableTopic 功能来重新尝试传递失败的消息。带有 @RetryableTopic 注释的侦听器正在使用具有 50 个分区和 3 个副本的主题。当应用程序接收到大量流量时,它可能会自动扩展到 50 个从这些分区中获取的应用程序(消费者)实例。我在 spring-kafka 文档中读到,默认情况下,@RetryableTopic 自动创建的重试主题是使用一个分区和一个副本创建的,但是您可以在配置中使用 autoCreateTopicsWith() 更改这些值。由此,我有几个问题:

重试主题的分区数至少要和原来的一样多(默认情况下,记录会发送到同一个分区);否则你必须自定义目标分辨率以避免警告日志。参见

除非您获得大量重试记录,否则 50 个分区可能有点矫枉过正。

这取决于你想要多少副本,但一般来说,是的,我会使用与原始副本相同数量的副本。

只有您可以决定什么是“正确”的数字。