如何以编程方式将partition-key
设置为我发送的每个类的实例?
例如,如果我发送Person
个实例,那么我想将partition-key
设置为person.getId()
。
class Person {
String id;
public Person(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "Person{" +
"id='" + id + '\'' +
'}';
}
}
@EnableBinding(Source.class)
public class SpringCloudStreamKinesisProducerApplication {
@InboundChannelAdapter(Source.OUTPUT)
public Person source() {
return new Person("my-id-123");
}
}
答案 0 :(得分:1)
您可以使用以下属性设置分区键:
spring.cloud.stream.bindings.output.producer.partitionKeyExpression=payload.id
这将确保您生成的任何Person
实例将被发送到目标上的相应分区。