使用 Java 和 Spring 的 AWS kinesis 消费者
Posted
技术标签:
【中文标题】使用 Java 和 Spring 的 AWS kinesis 消费者【英文标题】:AWS kinesis consumer with Java and Spring 【发布时间】:2018-06-20 22:00:47 【问题描述】:我想在 Spring Boot 应用程序中编写 AWS kinesis 流使用者。而且我不确定 Spring 是否具有对 kinesis 的本机支持,或者我必须使用 kinesis client library。
根据this blog post org.springframework.integration:spring-integration-aws
有它(RELEASE 在 maven repo 中可用)。但是,此示例 on GitHub 使用 org.springframework.cloud:spring-cloud-starter-stream-kinesis
,它仅在 1.0.0.BUILD-SNAPSHOT
下的 Spring 快照存储库中可用。
编辑:问题是,我在哪里可以找到KinesisMessageDrivenChannelAdapter
的示例?
【问题讨论】:
【参考方案1】:虽然不清楚是什么问题。
如果您正在寻找样品,确实没有样品。没错,我们在 Spring 中的解决方案绝对是 Spring Integration 的 Channel Adapter。 KinesisMessageDrivenChannelAdapter
正是 AWS Kinesis 的消费者实现:
@SpringBootApplication
public static class MyConfiguration
@Bean
public KinesisMessageDrivenChannelAdapter kinesisInboundChannelChannel(AmazonKinesis amazonKinesis)
KinesisMessageDrivenChannelAdapter adapter =
new KinesisMessageDrivenChannelAdapter(amazonKinesis, "MY_STREAM");
adapter.setOutputChannel(kinesisReceiveChannel());
return adapter;
您在 GitHub 上找到的示例适用于 Spring Cloud Stream,并且基于确实仍在开发中的 Kinesis Binder。
【讨论】:
感谢您的回复!那么其他项目(Kinesis binder)是否打算在未来取代 Channel Adapter? 不,它完全基于那个 Channel Adapter,只是为 Spring Cloud Stream 提供 Binder 基础设施:cloud.spring.io/spring-cloud-stream 好的,我把问题改成了 KinesisMessageDrivenChannelAdapter 的例子 好的。但仍然不确定您还想从我们这边听到什么。您可以查看项目中的测试:github.com/spring-projects/spring-integration-aws/blob/master/… 我将查看测试并尝试基于它们构建一个示例。如果我有更具体的问题,我会发布它们。谢谢!以上是关于使用 Java 和 Spring 的 AWS kinesis 消费者的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot、Spring Cloud AWS 和 AWS SQS 未从队列中读取
使用 IAM 身份验证和 Spring JDBC(DataSource 和 JdbcTemplace)访问 AWS RDS
AWS Elastic Beanstalk - tomcat java spring boot 应用程序的问题
Spring Boot + Flyway + AWS:原因:java.sql.SQLException:找不到合适的驱动程序