有没有集成spring云函数webflux + spring云流和http源
Is there an integration of spring cloud function webflux + spring cloud stream with http source
我正在尝试将 spring 云流与 spring 云函数 webflux
集成
因为他们在未来的版本中弃用 spring 云反应流 我正在尝试使用 spring 云函数
https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.2.RELEASE/single/spring-cloud-stream.html#spring-cloud-stream-preface-notable-deprecations
Spring 云 Web 函数可以使用文档中的路径公开其函数的终点
从云流中我可以看到源需要定义为
供应商 https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.2.RELEASE/single/spring-cloud-stream.html#_spring_cloud_function
但我的用例是从反应性 http 端点获取 POST 数据并摄取到 kafka,有什么方法可以从 spring 云功能网络和 spring 云实现它流 ?
来自 spring 云函数与 spring 云流的文档
@SpringBootApplication
@EnableBinding(Source.class)
public static class SourceFromSupplier {
public static void main(String[] args) {
SpringApplication.run(SourceFromSupplier.class, "--spring.cloud.stream.function.definition=date");
}
@Bean
public Supplier<Date> date() {
return () -> new Date(12345L);
}
}
如果我 运行 我可以看到日期每 1 秒被插入到 kafka 中,如果我调用 localhost:/8080/date 这样的供应商的 get 端点会导致日期响应,是否存在使用 spring 云函数将 paylaod 从 post 注入到 kafka 的任何方法?
您的问题有助于发现一个问题,它与函数和流提供的自动配置之间的生命周期不一致有关。该问题以 Spring Cloud Functions 创建的休息点无法看到绑定的方式表现出来,因为它创建得更早
所以我们会尽快解决这个问题。同时,有一个解决方法需要您从 ApplicationContext 访问 output
通道(见下文):
@SpringBootApplication
@EnableBinding(Source.class)
public class SimpleFunctionRabbitDemoApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SimpleFunctionRabbitDemoApplication.class);
}
@Bean
public Consumer<String> storeSync(ApplicationContext context) {
return v -> {
MessageChannel channel = context.getBean(Source.OUTPUT, MessageChannel.class);
channel.send(MessageBuilder.withPayload(v).build());
};
}
}
我正在尝试将 spring 云流与 spring 云函数 webflux
集成因为他们在未来的版本中弃用 spring 云反应流 我正在尝试使用 spring 云函数 https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.2.RELEASE/single/spring-cloud-stream.html#spring-cloud-stream-preface-notable-deprecations
Spring 云 Web 函数可以使用文档中的路径公开其函数的终点
从云流中我可以看到源需要定义为 供应商 https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.2.RELEASE/single/spring-cloud-stream.html#_spring_cloud_function
但我的用例是从反应性 http 端点获取 POST 数据并摄取到 kafka,有什么方法可以从 spring 云功能网络和 spring 云实现它流 ?
来自 spring 云函数与 spring 云流的文档
@SpringBootApplication
@EnableBinding(Source.class)
public static class SourceFromSupplier {
public static void main(String[] args) {
SpringApplication.run(SourceFromSupplier.class, "--spring.cloud.stream.function.definition=date");
}
@Bean
public Supplier<Date> date() {
return () -> new Date(12345L);
}
}
如果我 运行 我可以看到日期每 1 秒被插入到 kafka 中,如果我调用 localhost:/8080/date 这样的供应商的 get 端点会导致日期响应,是否存在使用 spring 云函数将 paylaod 从 post 注入到 kafka 的任何方法?
您的问题有助于发现一个问题,它与函数和流提供的自动配置之间的生命周期不一致有关。该问题以 Spring Cloud Functions 创建的休息点无法看到绑定的方式表现出来,因为它创建得更早
所以我们会尽快解决这个问题。同时,有一个解决方法需要您从 ApplicationContext 访问 output
通道(见下文):
@SpringBootApplication
@EnableBinding(Source.class)
public class SimpleFunctionRabbitDemoApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SimpleFunctionRabbitDemoApplication.class);
}
@Bean
public Consumer<String> storeSync(ApplicationContext context) {
return v -> {
MessageChannel channel = context.getBean(Source.OUTPUT, MessageChannel.class);
channel.send(MessageBuilder.withPayload(v).build());
};
}
}