我在使用storm trident的时候,如果设置并行度不小于2,如何让所有的executor 运行在不同的服务器上,而不是只在一台服务器上?

When I use storm trident, if I set the parallelism not less than 2, how can I make all the executors run on different servers not just on one server?

即,如果并行度为 2,则 bolt 运行 在 2 个不同的服务器上,如果并行度为 3,则 bolt 运行 在 3 个不同的服务器上。这对我很重要,因为我不希望所有任务 运行 仅在一台服务器上完成,那样太慢了。

尝试通过

增加配置参数"number of workers"(默认值为1)
Config cfg = new Config();
cfg.setNumWorkers(...);

您还可以通过 storm.yaml 配置参数 supersior.slots.ports 限制每台主机的 worker 数量——对于每个端口,可以启动一个 worker JVM,因此如果您只为此提供一个端口配置,只有一个工作 JVM 将启动。请注意,这可能会限制您可以 运行 的拓扑数量。单个工作 JVM 将仅执行来自单个拓扑的代码(以将拓扑彼此隔离)。