用于大规模数据聚类的工具。
coordinate的Python项目详细描述
Coordinate是一个独立的服务器进程和客户端库,用于 多系统协调和同步能力。它 管理工作规范和工作单元,加权调度, 优先级调度和依赖关系图。
配置和执行
在全局yakonfig config.yaml配置文件中,添加coordinate 在顶层:
coordinate: server: host: 0.0.0.0 port: 5932 namespace: *namespace registry_addresses: ['10.0.1.x:5932']
使用此配置运行coordinated,或手动指定 --host和--port。默认配置是只监听 在端口5932上的本地主机接口上。
主接口是通过TaskMaster对象实现的。这个 实现对协调服务器进行rpc调用。
服务器是可插入的,附加功能可以通过 其他类似于jobqueue类的服务器对象。
RPC系统
coordinated使用基于cbor消息的简单rpc系统。顾客 进程启动TCP连接,如配置中所示 并发送cbor消息,如(json语法):
{"id": 1, "method": "lock", "params": [...]}
其中id是每个客户端对象的序列号,从1开始。 每个客户端对象有一个TCP连接,但此连接是 保持打开直到明确关闭。
回答如下:
{"id": 1, "result": "value"}
或:
{"id": 2, "error": {"message": "No such method"}}
如果服务器端调用引发异常,则格式化的回溯为 包含为错误消息。
服务器支持请求消息的cbor列表,并将返回 CBOR响应列表。
客户端类子类coordinated._cbor_rpc_client.CborRpcClient 并调用_rpc()来执行调用。此方法阻止 连接和响应。如果服务器返回错误表单,则 作为异常引发。
服务器当前使用代理对象运行 coordinated.lockd.MultiBackendProxyObject,并调用请求的 具有所请求参数的对象上的方法。