Spring 启动,Spring 集成 RabbitMQ 和 AWS Kinesis 集成
Spring Boot , Spring Integration RabbitMQ & AWS Kinesis Integration
我需要使用来自 rabbitMQ 的消息,进行一些处理并最终将消息发布到 Kinesis 数据流。
我们已经在使用 Spring Boot、Spring Integration Core 和 Spring Integration AQMP 5.5.1 Integration Flows 来使用来自 RabbitMQ 的消息。我们的任何项目都没有使用 Spring Cloud Stream。
对于将消息发布到 Kinesis 数据流的用例,您建议使用什么 spring 库?在浏览 Spring 文档后,我看到了几个可用的选项。你能告诉我哪个是最好的追求吗?
- spring-cloud-stream-binder-aws-kinesis
- spring-集成-aws
只要您不关心 Spring Cloud Stream,就不应将 Spring Cloud Stream 依赖项的 AWS Kinesis Binder 引入您的项目。仅仅因为如果您的项目中没有 Spring Cloud Stream 功能,它就无法工作。
由于您的应用程序确实是一个 Spring 集成应用程序,因此您肯定需要使用该 Spring AWS 依赖集成。它带有一个 KinesisMessageHandler
实现,用于将记录生成到 Kinesis 流中。
查看其文档以获取更多信息:https://github.com/spring-projects/spring-integration-aws#outbound-channel-adapter-3. Such a handler should be declared as a bean and can be used in the .handle()
endpoint of an IntegrationFlow
definition. See docs about existing handlers and missed Java DSL factories: https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl-protocol-adapters
更新
如何在 Java DSL 中使用 Kinesis MH:
@Bean
public MessageHandler kinesisMessageHandler(AmazonKinesis amazonKinesis) {
KinesisMessageHandler kinesisMessageHandler = new KinesisMessageHandler(amazonKinesis);
return kinesisMessageHandler;
}
@Bean
IntegrationFlow someFlow(MessageHandler kinesisMessageHandler) {
return f -> f
.handle(kinesisMessageHandler);
}
我需要使用来自 rabbitMQ 的消息,进行一些处理并最终将消息发布到 Kinesis 数据流。 我们已经在使用 Spring Boot、Spring Integration Core 和 Spring Integration AQMP 5.5.1 Integration Flows 来使用来自 RabbitMQ 的消息。我们的任何项目都没有使用 Spring Cloud Stream。
对于将消息发布到 Kinesis 数据流的用例,您建议使用什么 spring 库?在浏览 Spring 文档后,我看到了几个可用的选项。你能告诉我哪个是最好的追求吗?
- spring-cloud-stream-binder-aws-kinesis
- spring-集成-aws
只要您不关心 Spring Cloud Stream,就不应将 Spring Cloud Stream 依赖项的 AWS Kinesis Binder 引入您的项目。仅仅因为如果您的项目中没有 Spring Cloud Stream 功能,它就无法工作。
由于您的应用程序确实是一个 Spring 集成应用程序,因此您肯定需要使用该 Spring AWS 依赖集成。它带有一个 KinesisMessageHandler
实现,用于将记录生成到 Kinesis 流中。
查看其文档以获取更多信息:https://github.com/spring-projects/spring-integration-aws#outbound-channel-adapter-3. Such a handler should be declared as a bean and can be used in the .handle()
endpoint of an IntegrationFlow
definition. See docs about existing handlers and missed Java DSL factories: https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl-protocol-adapters
更新
如何在 Java DSL 中使用 Kinesis MH:
@Bean
public MessageHandler kinesisMessageHandler(AmazonKinesis amazonKinesis) {
KinesisMessageHandler kinesisMessageHandler = new KinesisMessageHandler(amazonKinesis);
return kinesisMessageHandler;
}
@Bean
IntegrationFlow someFlow(MessageHandler kinesisMessageHandler) {
return f -> f
.handle(kinesisMessageHandler);
}