Kinesis Streams和Spring Integration Channels

时间:2018-06-12 20:57:49

标签: spring-integration amazon-kinesis spring-cloud-stream spring-integration-aws

我正在开发一个消费者,它消耗来自多个Kinesis流的事件。我有一些问题需要了解最佳实践。

  1. 我应该为每个流创建一个频道吗?在“每个流的频道”或“所有流的一个频道”之间应该考虑哪些因素来决定?

  2. 哪种渠道更符合我的案例表现?有不同的渠道类型,如PollableChannel,SubscribaleChannel和DirectChannel。

  3. 谢谢

1 个答案:

答案 0 :(得分:0)

KinesisMessageDrivenChannelAdapter是一个活动组件,它在任务执行器中执行消费和消息发送。因此,您可能认为不要将消息转移到QueueChannelExecutorChannel - 逻辑已经是异步并且涉及机器上的足够线程。最好不要将处理转移到单独的线程并保持此消耗线程忙,并且不要将更多记录从Kinesis轮询到内存中。

对于不同的流,一个KinesisMessageDrivenChannelAdapter基本上可以为几个流做同样的工作 - 将使用机器上的线程容量。

在不同的处理逻辑或不同的数据类型或不同的Kinesis客户端选项的情况下,我们需要不同的通道适配器。在所有其他情况下,单个实例就足够了。