如何使用Spring Cloud Streams Supplier发送消息/数据?

nqwrtyyt  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(102)

我试图在kafka上发送消息时,在特定的表Record中有一个插入。我认为应用程序的这一部分将被视为Supplier/Producer
我有以下代码。

@Bean
public Supplier<RecordAlteredEvent> affectedRecordEventEmitter() {
    return (/*how do I pass the data?*/) -> {
            
        log.info("SENDING_MESSAGE TO RECORD_EVENT_TOPIC");
        return new RecordAlteredEvent();
    };
}

字符串
我实际上想发送数据。所以,我正在寻找更像以下内容的东西:

@Bean
public Function<RecordAlteredEvent, RecordAlteredEvent> alteredRecordEventEmitter() {
    return (RecordAlteredEvent recordAlteredEvent) -> {
        log.info(SENDING_MESSAGE, VDP_USERS_EVENT_TOPIC, recordAlteredEvent.toString());
        return recordAlteredEvent;
    };
    }


这是可能的吗?我如何配置它?所以,例如,如果
1.我声明了一个“供应商”,那么我如何将数据传递给它?
1.如果我声明一个“函数”,似乎输入将从topic接收并转发。我没有从topic接收数据。我从REST API/DB接收数据。
我不确定以下是否能有所帮助:但基本的尝试我不能成功。因此,一个例子会有很大的帮助。

@Autowired
private StreamBridge streamBridge;

// Can following work somehow in-side a function that is, for example, in spring-boot-service  
streamBridge.send("myDestination", body);


供参考:

  1. https://cloud.spring.io/spring-cloud-stream/reference/html/spring-cloud-stream.html#spring_cloud_function
whhtz7ly

whhtz7ly1#

以下工作
宣告栏

private final StreamBridge streamBridge;

字符串
申报职能

public void delegateRecordsEventSupplier(@NotNull final RecordsEvent alteredRecordsEvent) {
    streamBridge.send("affectedRecordsEvent-out-0", alteredRecordsEvent);
  }


调用这些函数时,将把消息放在topic

相关问题