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

  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/harrychinese/p/python_remote_call.html
Copyright © 2011-2022 走看看