当前位置: 首页 > 知识库问答 >
问题:

在单个Java进程中处理多个Kinesis流

巢承安
2023-03-14

我想在同一个Java过程中使用KCL处理多个Kinesis流。

想法很简单:为每个流创建一个新的KCL实例,然后并发运行worker。

我的问题是,在这种情况下,所有KCL实例是否都使用相同的线程池,以及在处理流处理时,这种想法是否是一种好的/常见的做法。

非常感谢。

共有1个答案

秦昂然
2023-03-14

当然,您可以这样做-只需启动多个KCL Worker实例,每个实例指向不同的流(使用自己的配置等)。每个Worker实例应该独立于其他Worker管理自己的ShardConsumer线程。

然而,更常见/推荐的做法是让每个Worker在自己的流程中运行——这提供了更多的划分,这将改进:

  1. 故障案例-防止一个故障影响所有工人
  2. 部署/更新—可以更好地控制立即停止更新的工作人员数量
  3. 硬件管理—每个进程一个工作进程更容易分布在多个小型主机上,尤其是当您的处理需求增长时
  4. 开发复杂性—虽然KCL在一个流程中支持多个工人,但将每个工人作为自己的流程进行开发要容易得多
 类似资料:
  • 问题内容: 可以说我有这个: 现在。如果bool1被评估为false,那么Java是否足够聪明来跳过检查bool2和bool2?Java甚至从左到右检查它们吗?我之所以这样问,是因为我在整理条件时将其内部条件“分类”(从左侧最便宜的条件开始)。现在我不确定这是否会给我带来任何性能上的好处,因为我不知道Java如何处理这个问题。 问题答案: 是的,Java(类似于其他主流语言)使用 惰性评估 短路,

  • 问题内容: 有没有办法在单个函数调用上做到这一点? 就像是: 我知道这是一个语法混乱,但是只是为了给我一个我想实现的目标一个思路,一系列路由就很棒了! 有人知道怎么做吗? 问题答案: 我在寻找相同功能时遇到了这个问题。 @Jonathan Ong在上面的评论中提到,不建议将数组用于路径,但已在Express 4中对其进行了明确描述,并且它在Express 3.x中有效。这是尝试的示例: 从对象内部

  • 问题内容: 我有大约10个EntityManager的Java EE应用程序(EM的数量可能会增加)。我的应用程序还包含许多无状态,有状态和消息驱动的bean。 与其将我的EM注入每个Bean (以及两种检测用户使用的EM的方法),不如将所有这些存储在一个singleton bean中,并与其他bean一起访问。这样,无需担心可维护性。 但是,将EM存储在一个单例bean中是否安全?会出现瓶颈吗?

  • 我对Spring和Activiti完全陌生,并为自己做了一个运行良好的小项目。该服务中有4个服务任务、一个REST控制器、1个进程、1个服务和4个方法。 当我调用服务器endpoint时,我启动了我的流程,它只是一步一步地完成我的服务任务并调用服务。方法,如表达式${service.myMethod()}中定义的。 但是,我真正需要的是一个工作流,它在servicecall之后停止,并等待发送另一

  • 我想创建一个未来列表,每个未来都可能通过或失败,并整理成功未来的结果。我该怎么做? 问题1)我想等待每个未来完成2)我想从每个成功的未来收集返回值的总和,并忽略失败的回报值(所以我应该得到3)。

  • 问题内容: 如何在“处理”中创建单个草图的多个窗口? 实际上我想在一个窗口中检测并跟踪特定颜色(通过网络摄像头),然后将检测到的坐标显示为另一个窗口中的点,直到现在我仍可以在检测到该颜色的同一个窗口中显示这些点。我想将其拆分为两个不同的窗口。 问题答案: 您需要创建一个新框架和一个新的PApplet …这是一个示例草图: