Apache storm 在Storm Bolt中创建螺纹

Apache storm 在Storm Bolt中创建螺纹,apache-storm,distributed-system,Apache Storm,Distributed System,我想并行触发多个web请求,然后在storm拓扑中聚合数据?以下哪种方式是首选 1) 在螺栓内创建多个螺纹 2) 创建多个螺栓并创建合并螺栓以聚合数据 我希望在一个螺栓中创建多个线程,因为在另一个螺栓中合并数据不是一个简单的过程。但我发现我在网上发现了一些问题 但是没有弄清楚为什么不创建多个线程。任何指示都会有帮助 另一方面,这是否意味着我不应该使用java8的并行流功能,正如在中所提到的那样?增加bolt的任务数量,就像产生相同的多个实例一样。同时增加执行器(线程)的数量,以均匀处理它们 确保

我想并行触发多个web请求,然后在storm拓扑中聚合数据?以下哪种方式是首选

1) 在螺栓内创建多个螺纹

2) 创建多个螺栓并创建合并螺栓以聚合数据

我希望在一个螺栓中创建多个线程,因为在另一个螺栓中合并数据不是一个简单的过程。但我发现我在网上发现了一些问题 但是没有弄清楚为什么不创建多个线程。任何指示都会有帮助


另一方面,这是否意味着我不应该使用java8的并行流功能,正如在中所提到的那样?增加bolt的
任务数量,就像产生相同的多个实例一样。同时增加
执行器(线程)
的数量,以均匀处理它们


确保创建多个螺栓的执行器是更干净的方法。Storm应该管理所有线程。如果您启动自己的线程,Storm将不知道它们。如果出现故障(即没有清理),这可能会出现问题。为什么要创建多个线程?Storm的工作方式允许您通过增加螺栓的任务数量来扩展。Storm为您管理所有线程复杂性和通信,以便您能够专注于处理。选择#2对我来说更有意义,因为它取决于您的用例。如果您有选择,那么使用2)因为它不会“破坏”storm,所以设计友好很重要,所以让storm决定如何使用拓扑分配工作。bolt中的延迟太多是一个问题,有时,您需要在storm中执行异步操作(非阻塞任务),因此在bolt中使用线程是一种方法,但还有许多其他方法您应该尝试,如果您可以使用storm友好的方法,那么就尝试一下。