gpt4 book ai didi

python - 分布式Python服务器的高效布局?

转载 作者:行者123 更新时间:2023-11-28 21:30:59 25 4
gpt4 key购买 nike

如果我想让 Python 分布在多台计算机上的多个处理器上,我最好的方法是什么?如果我有 3 台八核服务器,这意味着我必须运行 24 个 python 进程。我会使用multiprocessing library ,并且要共享对象,看起来最好的主意是使用管理器。我希望所有节点作为一个大进程一起工作,因此一个管理器是理想的选择,但这会给我的服务器带来单点故障。有更好的解决方案吗?复制经理的对象存储是个好主意吗?

此外,如果管理器要执行所有数据库查询,将其与数据库放在同一台计算机上是否有意义?

最佳答案

在分配流程方面您面临两个主要挑战:

  1. 协调被拆分、分发和重新收集的工作(您可能会说,映射和缩减)
  2. 在相互依赖的进程之间共享正确的实时数据

第一个问题的答案很大程度上取决于您正在执行的处理类型。如果它很容易水平分区(即您可以将较大的任务拆分为多个独立较小的任务),则可以使用类似 HAProxy 的负载均衡器可能是分散负载的便捷方法。

如果任务不能简单地水平分区,我首先会查看是否有现有工具,例如 Hadoop ,会为我工作。分布式任务管理是一项很难做好的任务,而轮子已经被发明了。

对于#2,在进程之间共享状态,如果您共享绝对最小值,然后仅以明确定义的方式共享它,您的生活会容易得多。我个人会使用SQLAlchemy即使是最小的任务,也由您选择的 RDBMS 提供支持。查询界面功能强大且轻松,对于小型和大型项目都足够。

关于python - 分布式Python服务器的高效布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com