提示

GatewayWorker提供的所有接口都是支持分布式调用的,所以业务代码不需要任何更改,直接就可以分布式部署。

如何分布式GatewayWorker

GatewayWorker通过Register服务来建立划分集群。同一集群使用相同的Register服务,即Gateway 和 businessWorker的注册服务地址($gateway->registerAddress $businessworker->registerAddress)指向同一台Register服务。

Gateway BusinessWorker Register之间如何工作的,请看这里

分布式部署的关键步骤

1、设置Gateway启动脚本(一般是start_gateway.php)中的lanIp与当前服务器内网ip一致

2、将Gateway 和 businessWorker的注册服务地址(registerAddress)设置成相同地址。

部署示例

以Applications/Demo为例,假如需要部署三台服务器(192.168.1.1-3)提供高可用服务。

1、选择一台服务器运行统一的Register服务,这里选择192.168.1.1,Register服务的端口为1236(其它服务器上的Register服务可以删除或者注释掉)

2、配置三台服务器start_gateway.php start_businessworker.php中的registerAddress为'192.168.1.1:1236'。

3、分别配置三台服务器start_gateway.php中的lanIp为当前服务器的内网ip(192.168.1.1-3)。

4、逐台启动,分布式部署完毕。

说明:

1、三台GatewayWorker机器都运行了Gateway进程和Worker进程,客户端连接上任意一台GatewayWorker的Gateway端口即可。

2、为了方便前端接入和扩容,可以在Gateway前加一层DNS、LVS等负载均衡策略

3、如果服务器不够用可以使用同样的方法增加服务器

4、如果需要下线服务器,可以停止GatewayWorker,然后执行后续停机等下线操作(由于Gateway进程维护着客户端连接,当对应服务器下线时,对应服务器的客户端会掉线一次。如何做到下线机器不影响用户参考下一节)。

results matching ""

    No results matching ""