更新时间:2024-11-29 GMT+08:00
针对消费者侧固定版本号场景的升级示例
无论是否在执行升级,BLU一旦部署到集群中如果相应服务实例未被禁用那么就可能在处理请求,所以删除BLU或者删除BLU某个实例这种操作都是高危操作,极大可能会造成业务请求失败,务必谨慎。
假设背景
消费者访问服务时已固定了版本号,比如要访问“/oneservice/customers”服务的0.1.0版本而不是*版本,那么此时就不能利用版本策略来升级。此时可以通过部署同一服务同一版本的新实现然后禁用老实例最后删除老实例来完成服务升级,这种方式相当于是服务实现的替换,无法更换服务版本。
必要条件
有未部署老实现实例的Container节点可用,部署新实现的服务实例时不要和老的实现在同一个节点上,否则在禁用实例时新老实例分不开且判断新实例开始工作或老实例停止工作从监控数据层面会无法辨别,如果已经没有空闲Container可用,可先通过禁用部分老实现的实例待禁用掉的老实例不再处理请求后将这部分老实例删除。
升级步骤
- 参考添加BLU实例部署新实例,并确认新实现的实例开始正常处理请求。
- 登录FusionInsight Manager界面。
- 选择“集群 > 服务 > Containers > SGP管理”。
- 在左侧的列表框中单击“应用服务列表”。
- 在右侧的列表“名称”列下单击待操作的服务名称。
- 确认新实例开始正常处理请求。
在“状态”页面查看到新实例开始上报监控数据,就表示新实例开始正常处理请求
- 单击“提供者”页签,选择需要禁用的老实例,单击“禁用”,在弹出的对话框中单击“确定”禁用老实例。
- 参考添加BLU实例将老实例对应的BLU删除。
确认老实例不再处理请求才能删除,可以通过查看实例处理日志不再接受请求或者查看老实例节点的监控数据不再增长后删除。
注意事项
这种方式并不推荐,因为这种服务升级服务版本号无法更新,从管理角度上无法区分服务是新的还是老的,且操作上需要查看后台日志配合,通过监控数据判定新/旧实例是否在工作的方式在新老实例共用节点时无效,升级操作不方便。
父主题: 使用Containers