python - 同时运行 Python ZMQ Workers
问题描述
我是 Python 和分布式系统的新手。我正在使用 ZeroMQ Venitlator-Worker-Sink 配置: Ventilator - Worker - Sink
目前一切都很好,我的问题是,我需要很多工人。每个工人都在做同样的工作。目前,每个工人都在自己的 Python 文件中工作,并拥有自己的输出控制台。如果我有程序更改,我必须更改(或复制)每个文件中的代码。下一个问题是我必须启动/运行每个文件,所以启动 12 个文件很烦人。这里有什么最好的解决方案?线程,进程?我不得不说,目标是让每个工人都在不同的树莓派上运行。
解决方案
这似乎更像是一个开发/运营问题。您的工作代码(可能是单个代码库)位于多台分布式机器或实例上。您对该代码库进行了更改,您需要将生成的代码分发到每个实例,然后重新启动该过程。
首先,您应该至少使用源代码控制系统,例如 Git。使用这样的系统,您至少可以访问每个实例并提取最近的提交并重新启动。除此之外,您可以设置一个像 Ansible 这样的系统,以便在从单个命令启动的每个实例上运行这些操作。
还有许多其他工具、策略和服务可以帮助您以多种不同的方式完成这些事情。使用 Docker 创建单个工作容器,然后在您的各种实例上分发和运行该容器可能是实现您所追求的更流行的方法之一,但它需要对您的基础架构进行更根本的更改。
希望这可以帮助。
推荐阅读
- unix - 在 awk 中的 File2 中查找 File1 中的列
- dart - Flutter - 修复抽屉页眉
- wpf - WPF 按钮命令,为什么要在 ViewModel 中编写逻辑代码?
- php - best sorting method for merge two sorted array
- android - 适用于 OAuth 2.0 流 Android 的 Chrome 自定义选项卡的后备
- javascript - 访问数组内的对象
- python - TypeError: config must be a tf.ConfigProto, but got
- html - 如何为引导模式对话框实现拖放。所以用户可以从 Windows 资源管理器中拖动文件
- java - Appium:异常:发生了无效的服务器实例异常:没有安装的节点
- javascript - 在 react 应用程序中使用 react router v4 的正确方法