@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 和 3)的重试主题?
- 考虑到重试主题的默认值只有一个,使用不同数量的 partitions/replicas 是否有一些好处?
重试主题的分区数至少要和原来的一样多(默认情况下,记录会发送到同一个分区);否则你必须自定义目标分辨率以避免警告日志。参见
除非您获得大量重试记录,否则 50 个分区可能有点矫枉过正。
这取决于你想要多少副本,但一般来说,是的,我会使用与原始副本相同数量的副本。
只有您可以决定什么是“正确”的数字。
你好 Stack Overflow 社区和任何熟悉 spring-kafka 的人!
我目前正在开发一个项目,该项目利用 spring-kafka 的 @RetryableTopic 功能来重新尝试传递失败的消息。带有 @RetryableTopic 注释的侦听器正在使用具有 50 个分区和 3 个副本的主题。当应用程序接收到大量流量时,它可能会自动扩展到 50 个从这些分区中获取的应用程序(消费者)实例。我在 spring-kafka 文档中读到,默认情况下,@RetryableTopic 自动创建的重试主题是使用一个分区和一个副本创建的,但是您可以在配置中使用 autoCreateTopicsWith() 更改这些值。由此,我有几个问题:
- 考虑到自动缩放,是否建议仅创建与原始主题具有相同数量的分区和副本(50 和 3)的重试主题?
- 考虑到重试主题的默认值只有一个,使用不同数量的 partitions/replicas 是否有一些好处?
重试主题的分区数至少要和原来的一样多(默认情况下,记录会发送到同一个分区);否则你必须自定义目标分辨率以避免警告日志。参见
除非您获得大量重试记录,否则 50 个分区可能有点矫枉过正。
这取决于你想要多少副本,但一般来说,是的,我会使用与原始副本相同数量的副本。
只有您可以决定什么是“正确”的数字。