我们已经将SpringBoot升级到2.0.3版本(以前是1.5.10)。因此,我们更改了kafka&spring cloud stream的版本(2.0.0-release)
在我们的属性yml文件中,我们并不总是配置 partitionKeyExpression
我们大多数人 partitionCount
大于1。
在以前的版本中,这些设置以及不传递任何键将导致以循环策略生成消息。
在新版本中,相同的设置会导致 isPartitioned
返回true,这将使用新的partitionhandler添加拦截器,其中extractkey方法由于缺少键而失败(用消息“partition key cannot be null”Assert)。
问题是,我们如何在设置相同或更改较少的情况下保持以前的行为。我们如何能保持不使用密钥并确保消息以循环策略发送到分区?
1条答案
按热度按时间wmvff8tz1#
计数现在用于决策。
我认为这是错误的。
作为一个解决办法,不要设置流
producer.partitionCount
如果您想使用本机kafka分区(并且主题已经存在)。