zoukankan      html  css  js  c++  java
  • 跨计算机执行的几个方法

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

  • 相关阅读:
    Oracle在Linux下使用异步IO(aio)配置
    慢慢聊Linux AIO
    ssh批量登录并执行命令(python实现)
    Reverse Linked List II
    Reverse Linked List
    Excel Sheet Column Title
    Summary Ranges
    面试题1:实现大数加减乘除四则运算
    Multiply Strings
    Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/harrychinese/p/python_remote_call.html
Copyright © 2011-2022 走看看