一、概述
上一篇文章介绍了Dubbo的QoS服务的基本作用和配置使用
https://blog.csdn.net/qq_33513250/article/details/102978132
接下来我们进行源码分析它的功能是如何实现的。
二、QosProtocolWrapper
dubbo服务提供者ServiceBean的初始化过程中,会调用Protocol接口的export方法,RerenceBean的初始化过程中,会调用Protocol接口的refer方法。Dubbo的ExtensionLoader类会对Protocol进行自动包装,其中一个包装类为QosProtocolWrapper,具体过程请参见我的其他章节内容。
QosProtocolWrapper对DubboProtocol进行包装,当invoker的url协议是registry时,export和refer方法都会调用startQosServer(url)开启QoS服务,销毁时会调用stopServer方法关闭服务。
public class QosProtocolWrapper implements Protocol {
private final Logger logger = LoggerFactory.getLogger(QosProtocolWrapper.class);
private static AtomicBoolean