RPC客户端的相关配置参数在/config/rpc.php
文件中进行修改。
RPC客户端组件,是依赖Swoole的\Swoole\Coroutine\Client
类实现。
RPC客户端在使用之前,需要先开启一个以HTTP服务启动的Web服务中心,具体可以参考:RPC部署章节。
严格来说,Web服务中心只允许存在一个,但并不强制限制。
在以HTTP服务启动的Web服务中心项目中,客户端的初始化服务配置在/rpc/map.php
文件中进行管理。
会在Web服务中心启动时,初始化到Reids
服务中,之后可以登陆Web服务中心进行日常管理。
配置格式如下:
// 路由名称
'order/create' => [
// 操作方法
'run' => [
// 多个连接池
[
'title' => '30机器', // 节点名称
'ip' => '127.0.0.1', // 节点IP
'port' => '9502', // 节点端口
'status' => 0, // 状态 0.开启(默认) 2.关闭
]
]
],
Web服务中心,会按照轮询3秒一次的shell ping
命令进行IP检测,若ping不通,则标记该节点不可用。
若ping通过,则记录当前延时,并修改该节点评分值。
RPC客户端的评分是根据ping的多次延时浮动来进行加减管理,评分越高的节点会被优先使用。
RPC客户端会在每次调用前上报使用状态,并进行单个节点的使用量实时统计,当前使用量最少的节点会被优先使用。
RPC客户端的节点获取,是依靠评分值、当前节点请求数、当前节点延时数来进行排序选取的。