跨计算机执行的几个方法
1. gearman:
如果允许一个job在多个计算机中的任意一台上执行, 可以使用gearman, 换言之, 这些计算机必须是对等的. gearman 有2个组件: 一个是 job 的server, 一个是job 的 worker. server和worker既可以在一个节点上, 也可以在不同的节点上. 同时, 也允许存在多个server/worker, 这时, gearman 自己会决定要将job分配哪个worker上. 所以gearman可以为job执行服务端提供高可用和负载平衡. 但job client段的高可用它是不管的.
2. fabric 开源项目 或 func(redhat)的开源项目
fabric是基于ssh协议的. func是也采用类似ssh的协议.
fabric一般的用法是, 使用python语言编写fab file, 然后在命令行中写明要在哪个机器上执行这个fab文件.
func有2种用法, 既可以直接使用命令行; 也可以编写pytho脚本, 在脚本中写明要在哪个计算机上执行.
fabric在windows安装步骤如下, (Python的ssh模块安装类似)
3. XMLRPC方式(SimpleXMLRPCServer和xmlrpclib组合)
和COM等类似, 不过xmlrpc和jsonrpc都是跨语言的rpc调用协议, python还有一些专用的rpc实现, 列表见 http://stackoverflow.com/questions/1879971/what-is-the-current-choice-for-doing-rpc-in-python
SimpleXMLRPCServer和xmlrpclib是python的标准库, 文档最全, 可优先选择.
http://www.doughellmann.com/PyMOTW/SimpleXMLRPCServer/index.html
http://www.doughellmann.com/PyMOTW/xmlrpclib/index.html
如果追求高效, 基于protobuf和msgpack是更好的选择, 尤其是msgpack. 序列化包为msgpack-python, rpc包为msgpack-rpc-python.
这3种远程执行方式的比较
fabric/func这两个东西多用在自动化部署上.fabric/func是指哪打哪的工具, 也就是说你发出job后, 就只知道将来job会在哪个机器上执行, 它们的job就像是bat批处理文件一样, 是OS命令的组合.
gearman是一个智能的任务分配器, 非常适合作为一个任务执行的集群, 它的job是函数级的东西.
XMLRPC, 这个也是指哪打哪的执行方式, 适合于开发agent, 或者C/S结构的软件. 它的job也是函数级的东西.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律