我想在同一个Java进程中使用KCL处理多个Kinesis流。
这个想法很简单:为每个流创建一个新的KCL实例,然后同时运行这些工作程序。
我的问题是,在这种情况下,是否所有KCL实例都使用相同的线程池,以及在处理流处理时这个想法是否是一个好的/通用的做法。
谢谢
当然,你可以这样做 - 只需旋转多个KCL Worker实例,每个实例指向不同的流(具有自己的配置等)。每个Worker实例都应该独立于其他Worker来管理自己的ShardConsumer线程。
但是,更常见/推荐的做法是让每个工作程序在自己的进程中运行 - 这提供了更多的分区,这将改进: