我正在开发一个消费者,它使用来自多个 Kinesis 流的事件。我有一些问题要了解最佳实践。
我应该为每个流创建一个频道吗?在“每个流的通道”或“所有流的一个通道”之间做出决定时应考虑哪些因素?
哪个渠道更适合我的案例表现?有不同的频道类型,如 PollableChannel、SubscribaleChannel 和 DirectChannel。
谢谢
我正在开发一个消费者,它使用来自多个 Kinesis 流的事件。我有一些问题要了解最佳实践。
我应该为每个流创建一个频道吗?在“每个流的通道”或“所有流的一个通道”之间做出决定时应考虑哪些因素?
哪个渠道更适合我的案例表现?有不同的频道类型,如 PollableChannel、SubscribaleChannel 和 DirectChannel。
谢谢
它KinesisMessageDrivenChannelAdapter
是一个活动组件,它在任务执行器中执行消费和消息发送。因此,您可能会认为不要将消息转移到QueueChannel
或ExecutorChannel
- 逻辑已经是异步的并且涉及机器上的足够多的线程。最好不要将处理转移到单独的线程并保持此消费线程忙碌并且不要将更多记录从 Kinesis 轮询到内存中。
本质上,一个人KinesisMessageDrivenChannelAdapter
可以对多个流执行相同的工作,就像针对不同流的多个单独的适配器一样——将使用机器上的线程容量。
在处理逻辑不同或数据类型不同或 Kinesis Client 选项不同的情况下,我们需要不同的通道适配器。在所有其他情况下,单个实例就足够了。