有没有办法仅在从外部系统收到消息时才将消息发送到主题?

Is there a way to send messages to topic only when received from external system?

我有一个正在侦听 UDP 数据包的侦听器,在接收和处理该数据后,我想将其流式传输到主题(目前是 Kafka)。

我已经成功地 运行 Spring Cloud Stream Kafka Binder 生产者的示例程序。

@Bean
public Supplier<PacketDataPojo> data() {
    return () ->  {
        PacketDataPojo pdp = new PacketDataPojo(UUID.randomUUID().toString());
        log.info("Current data {}", pdp);
        return pdp;
    };
}

application.properties

spring.cloud.function.definition=data
spring.cloud.stream.bindings.data-out-0.destination=data-stream

现在它正在按预定间隔生成数据,我如何才能Supplier在数据包处理完成后流式传输数据。

谢谢

我相信 StreamBridge 会为您解决问题 - https://docs.spring.io/spring-cloud-stream/docs/3.1.5/reference/html/spring-cloud-stream.html#_sending_arbitrary_data_to_an_output_e_g_foreign_event_driven_sources 因此,您的案例可能不需要供应商