当前位置: 首页 > 知识库问答 >
问题:

spring cloud函数webflux+spring cloud stream是否与http源代码集成

督冠玉
2023-03-14

我正在尝试将spring cloud stream与spring cloud函数webflux集成

https://cloud.spring.io/spring-cloud-static/spring-cloud-function/1.0.0.release/single/spring-cloud-function.html

从cloud stream中,我可以看到源代码需要定义为供应商https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.2.release/single/spring-cloud-stream.html#_spring_cloud_function

但是我的用例是从Active httpendpoint获取POST数据并摄取到kafka,有没有办法从spring cloud function web和spring cloud stream实现它?

@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);
    }
}

如果我运行它,我可以看到date每1秒钟就会被插入到kafka中,如果我调用供应商的getendpoint,比如localhost://8080/date结果生成date响应,那么有没有什么方法可以用spring cloud函数将paylaod从post注入到kafka?

共有1个答案

慕容成和
2023-03-14

您的问题帮助发现了一个问题,它与由函数和流提供的自动配置之间的生命周期不一致有关。这个问题的表现方式是,由Spring Cloud函数创建的rest点不能看到绑定,因为它是在更早的时候创建的

所以我们很快就会解决这个问题。同时,有一个变通方法,需要您从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());
     };
  }
}
 类似资料:
  • # -*- coding: utf-8 -*- """ oss2.http ~~~~~~~~ This is the HTTP Adapters for requests library. So that the dependency of request library is totally transparent to the SDK caller. It has the wrapper c

  • 我在R中查看cov的source_code,遇到了一段我不太理解的代码。 协方差的数学定义在这里。

  • 我试图将我的GCP gcloud函数(在python中)构造为每个函数的一个单独文件。从文档中听起来应该支持它,但当我尝试使用--source作为文件名而不是目录时,它失败了。我做错什么了吗? 以下是我使用的命令: GCloud函数部署create帐户--runtime python38--trigger-超文本传输协议--Source=postgres/createAccount.py 我得到的

  • 如果使用“Lambda代理集成”(这里也是 1) 数据映射到(而不是直接映射到需要映射模板的对象上) 2)是字符串化的,需要JSON. parse'd 下面是一个简单Lambda函数的示例,该函数期望输入符合API网关(node10x)的Lambda代理集成-- 问:如何(或应该)使用Lambda的内置测试输入功能,用于以Lambda代理集成的方式期望数据的Lambda脚本? 测试输入直接来自对象

  • 我想看看一个函数的源代码,看看它是如何工作的。我知道我可以通过在提示符下键入函数名称来打印函数: 在这种情况下,是什么意思?如何找到实际使用的源代码,例如:? 如何查找和等函数? 在另一些情况下,有一些R代码,但大部分工作似乎是在其他地方完成的。 如何找到函数的功能?类似地,某些函数调用、、、或。我怎样才能找到这些的源代码?

  • 本文向大家介绍浅谈SpringCloud之zuul源码解析,包括了浅谈SpringCloud之zuul源码解析的使用技巧和注意事项,需要的朋友参考一下 zuul各版本实现存在一些微小的变化,总的实现思想未改变,以spring-cloud-netflix-core-1.3.6.RELEASE为例 一、zuul的重要的初始化类 org.springframework.cloud.netflix.zuu