跨计算机执行的几个方法

网友投稿 287 2022-09-05


跨计算机执行的几个方法

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实现, 列表见 ​​文档最全, 可优先选择.

​​基于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也是函数级的东西.


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:安装python包(pycharm安装python包)
下一篇:python实现数据仓库ETL(python 数据仓库)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~