尝试使用springcloudstream和函数(供应商)模型将对象发布到kafka

omqzjyyz  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(366)

我正在尝试使用带有函数模型的spring云流将对象发布到kafka主题。下面是我的需求的代码片段。

控制器:

  1. @PostMapping(path = "/publish")
  2. public void publish(@RequestBody SampleObject obj) {
  3. service.publish(obj);
  4. log.info("Published Data {} successfully", obj.toString());
  5. }

服务等级:

  1. @Bean
  2. public Supplier<Object> publish(SampleObject obj) {
  3. return () -> {
  4. log.info("posting data to kafka topic {}", obj);
  5. return obj;
  6. };
  7. }

我的要求是我需要从控制器发送请求对象到服务,并将该对象发布到kafka主题。
注意:我不想使用不推荐的模型。

iyzzxitl

iyzzxitl1#

你可以考虑使用 StreamBridge .
裁判:https://docs.spring.io/spring-cloud-stream/docs/3.0.10.release/reference/html/spring-cloud-stream.html#_using_streambridge

  1. @SpringBootApplication
  2. @Controller
  3. public class WebSourceApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(WebSourceApplication.class, "--spring.cloud.stream.source=toStream");
  6. }
  7. @Autowired
  8. private StreamBridge streamBridge;
  9. @RequestMapping
  10. @ResponseStatus(HttpStatus.ACCEPTED)
  11. public void delegateToSupplier(@RequestBody String body) {
  12. System.out.println("Sending " + body);
  13. streamBridge.send("toStream-out-0", body);
  14. }
  15. }
展开查看全部

相关问题