Spring 云函数和 Kafka
Spring Cloud Function and Kafka
我很难理解我应该如何测试一个使用 Kafka Binder 同时还使用 Spring 云函数的应用程序。
让我们使用这个非常简单的例子:
@SpringBootApplication
public class DemoKafkaApplication {
public static void main(String[] args) {
SpringApplication.run(DemoKafkaApplication.class, args);
}
@Bean
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}
在我的 application.yaml 上:
spring.cloud:
stream:
function:
definition: uppercase
bindings:
uppercase-in-0:
destination: uppercase-topic
我将如何进行测试?如果我使用@StreamListener 和频道列表,我会这样做:
channels.uppercase().send(MessageBuilder.withPayload("test").build());
messageCollector.forChannel(channels.uppercaseOutput()).poll(5, TimeUnit.SECONDS);
但是,对于 Spring Cloud Function,情况并非如此。非常欢迎任何帮助,因为我在官方文档或示例中找不到任何内容!
参见 "Testing with an Embedded Kafka Broker" 示例:
和 Spring for Apache Kafka 文档以获取有关嵌入式代理的更多最新信息。
https://docs.spring.io/spring-kafka/docs/2.4.6.RELEASE/reference/html/#testing
我很难理解我应该如何测试一个使用 Kafka Binder 同时还使用 Spring 云函数的应用程序。
让我们使用这个非常简单的例子:
@SpringBootApplication
public class DemoKafkaApplication {
public static void main(String[] args) {
SpringApplication.run(DemoKafkaApplication.class, args);
}
@Bean
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}
在我的 application.yaml 上:
spring.cloud:
stream:
function:
definition: uppercase
bindings:
uppercase-in-0:
destination: uppercase-topic
我将如何进行测试?如果我使用@StreamListener 和频道列表,我会这样做:
channels.uppercase().send(MessageBuilder.withPayload("test").build());
messageCollector.forChannel(channels.uppercaseOutput()).poll(5, TimeUnit.SECONDS);
但是,对于 Spring Cloud Function,情况并非如此。非常欢迎任何帮助,因为我在官方文档或示例中找不到任何内容!
参见 "Testing with an Embedded Kafka Broker" 示例:
和 Spring for Apache Kafka 文档以获取有关嵌入式代理的更多最新信息。
https://docs.spring.io/spring-kafka/docs/2.4.6.RELEASE/reference/html/#testing