实现业务服务的主备切换
服务部署在框架有两种模式, 一种普通模式(bak_type=0), 一种主备模式(bak_type=1), 服务在这两种模式下都有备机状态(bak_flag=1), 同一个服务, 不同节点上的服务的bak_type必须相同, 要么都为1, 要么都为0
修改bak_type, 服务必须重启才能生效!!
- 普通模式
- 服务如果设置为备机状态, 无论服务是否启动, 则ip list中都不对外提供ip
- 发布服务时, 如果是备机, 则不启动服务
- 主备模式
- 主备模式主要为了支持一主多备的模式, 且备机也正常启动, 但是ip list中不对外提供ip
- 业务服务会定时(每隔2秒)抢主, 如果抢到主机则回调业务(onMaster), 否则变成备机回调业务(onSlave)
- 扩容服务时, 扩容出来的节点必须是备机
- 主备服务是业务服务自己抢占的, 因此这种模式下, 无法在页面上编辑主备状态
- 提供独立的接口, 切换主机, 即强制设置某服务为主机
- 如果bak_type从0设置1, 则将所有服务的bak_flag都设置为0