在重启dubbo provider的时候,现有的停机策略为
 
- 停止时,先标记为不接收新请求,新请求过来时直接报错,让客户端重试其它机器。
 - 然后,检测线程池中的线程是否正在运行,如果有,等待所有线程执行完成,除非超时,则强制关闭。

用客户端重试的方式来进行服务可用性的保证,但这会引起一些问题

1. 部份操作不允许重试,这样操作就会失败
1. 可能会因此请求失败,引起不必要的报警,影响运维

是否有可能,在停机的时候,先从注册中心摘除掉注册信息,确保consumer首先感知到服务下线,从而不再发布流量,然后provider服务停留一段时间,确保正在执行的服务已经执行完毕,然后再关机
这种策略方式是不是会更优雅一些

[ Full content available at: 
https://github.com/apache/incubator-dubbo/issues/2514 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to