尝试使用功能(供应商)模型的Spring cloud stream将对象发布到Kafka
我正在尝试使用带有函数模型的SpringCloudStream将对象发布到Kafka主题。下面是我的需求的代码片段 控制器: 服务类别:尝试使用功能(供应商)模型的Spring cloud stream将对象发布到Kafka,spring,apache-kafka,stream,cloud,Spring,Apache Kafka,Stream,Cloud,我正在尝试使用带有函数模型的SpringCloudStream将对象发布到Kafka主题。下面是我的需求的代码片段 控制器: 服务类别: @Bean 公共供应商发布(SampleObject obj){ 返回()->{ log.info(“将数据发布到卡夫卡主题{}”,obj); 返回obj; }; } 我的要求是我需要将请求对象从控制器发送到服务,并将该对象发布到Kafka主题 注:我不想去贬低模型。 你可以考虑使用 StreamBridge < /C> > < /P> 参考: 谢谢,这很有
@Bean
公共供应商发布(SampleObject obj){
返回()->{
log.info(“将数据发布到卡夫卡主题{}”,obj);
返回obj;
};
}
我的要求是我需要将请求对象从控制器发送到服务,并将该对象发布到Kafka主题
注:我不想去贬低模型。
你可以考虑使用<代码> StreamBridge < /C> > < /P> 参考:
谢谢,这很有帮助。发布数据部分已完成,是否希望看到从主题中读取数据的最佳方法?
@PostMapping(path = "/publish")
public void publish(@RequestBody SampleObject obj) {
service.publish(obj);
log.info("Published Data {} successfully", obj.toString());
}
@Bean
public Supplier<Object> publish(SampleObject obj) {
return () -> {
log.info("posting data to kafka topic {}", obj);
return obj;
};
}
@SpringBootApplication
@Controller
public class WebSourceApplication {
public static void main(String[] args) {
SpringApplication.run(WebSourceApplication.class, "--spring.cloud.stream.source=toStream");
}
@Autowired
private StreamBridge streamBridge;
@RequestMapping
@ResponseStatus(HttpStatus.ACCEPTED)
public void delegateToSupplier(@RequestBody String body) {
System.out.println("Sending " + body);
streamBridge.send("toStream-out-0", body);
}
}