Spring 云流partitionKeyExpression SpEL

Spring cloud stream partitionKeyExpression SpEL

我正在使用 spring-cloud-stream-kafka 编写一个小型压力测试,它会产生大量事件并将它们发送到特定的 Kafka 主题。

主题有 6 个分区,我想使用用户 ID 作为分区键。但是,用户 ID 并不总是存在,所以我希望逻辑是这样的:如果存在,则按用户 ID 进行分区,否则发送到随机分区。

有没有办法使用

spring.cloud.stream.bindings.output.producer.partitionKeyExpression

属性 实现想要的行为?

P.S。我能够创建一个提取器 class 来执行此操作,但我想知道是否有一种方法可以使用 Spel 来实现。

谢谢, 马可

Elvis Operator ?

类似

 payload.userId ?: Math.random() * 6

?