Spring cloud stream partitionKeyExpression SpEL

时间:2017-07-20 15:38:31

标签: spring-el spring-cloud-stream spring-kafka

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

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

有没有办法使用

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

属性实现通缉行为?

P.S。我能够创建一个这样做的提取器类,但我想知道是否有办法通过Spel实现这一目标。

谢谢, 马尔科

1 个答案:

答案 0 :(得分:0)

Elvis Operator

这样的东西
 payload.userId ?: Math.random() * 6