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