避免与并行化服务的工作负载重叠。

问题描述 投票:1回答:1

Worker服务从数据库中获取待处理的作业,并逐一处理它们。加快处理速度的自然方法是生成多个(任意数量的)Worker服务实例(通过Docker swarm或类似的方式),并让它们同时处理待处理作业。

您如何确保两个worker实例不会处理同一个作业?

我曾想过使用一个中央的、非并行化的管理器服务来跟踪工人并向他们发送作业,而不是由工人来获取他们自己的作业,但我想总有一天管理器服务本身需要并行化。这个解决方案似乎只是把问题踢得更远一些。

node.js database parallel-processing docker-swarm
1个回答
0
投票

Q : "你会如何 确保 该工人的两个实例不处理同一工作?"

简单的 。a ) 垄断访问方法,不得自由访问,减少任何工人的访问,加上... b ) 只让Job-Dispatcher执行这个Job-2-Worker的映射,再加上... c ) 将Job-Dispatcher的缩放设置为工作负载自适应(在较高负载下增加更多的功率),再加上...。d ) 让Job-Dispatcher在一些混合的同地分布式故障中幸存下来(是的,最好是作为一个分布式多代理、自我弹性的实体)。

现在,您已经拥有了一个安全的、大小合适的、可自适应扩展的、强大的&防DDoS的智能系统。

© www.soinside.com 2019 - 2024. All rights reserved.