我有一个模型对象,该对象在经过几次转换和解析后便被填充。现在,我需要使用spring集成将模型内的message属性发送到kafka。 我可以使用messageKey方法构造密钥,但是如何从m.getPayload()。getMessage()这样的模型中获取实际消息并将其发送到kafka。
.publishSubscribeChannel(pubSub -> pubSub
.subscribe(flow -> flow
.bridge(e -> e.order(Ordered.HIGHEST_PRECEDENCE))
.handle(Kafka.outboundChannelAdapter(kafkaTemplate).
messageKey(m -> ((AcarsFlightInformation) m.getPayload()).getFlightNbr()).topic(acarsKafkaTopic)))
答案 0 :(得分:0)
不清楚您要问什么。发送到适配器的消息的有效负载成为生产者记录的值。
我认为您要问的是,您只想发送部分有效载荷。
在.handle
...之前使用标头增强器和转换器...
.enrichHeaders(h -> h.headerExpression(KafkaHeaders.MESSAGE_KEY, "payload.flightNumber")
.transform("payload.message")
.handle(Kafka.outboundChannelAdapter(kafkaTemplate)
.topic(acarsKafkaTopic))
.get();
适配器将为密钥寻找该标头。