说明:本篇文章部分内容参考了网上的文章(在下文已给出原文链接),由于本人能力有限,如果有书写错误的地方,欢迎各位大佬批评指正!我们互相交流,学习,共同进步!
该项目的地址:https://github.com/xiaoheng1/nacos_read
nacos-client 源码分析
IConfigRequest 的作用,我理解是配置请求.
void putParameter(String key, Object value);
Object getParameter(String key);
IConfigContext getConfigContext();
ConfigRequest 中的 param 和 contextConfig 有啥区别?
IConfigFilterChain filter 链.
ConfigFilterChainManager 实现 IConfigFilterChain 接口,在构造 ConfigFilterChainManager 的时候,通过 SPI 加载 IConfigFilter 的所有实现, 并将 filter 加入到 filters 中.
filter 链的设计:
1.将 filter 构造成用指针连接起来的结构,相当于俄罗斯套娃那种结构,例如 dubbo.
经典代码:
private static Invoker buildInvokerChain(final Invoker invoker, String key, String group) {
Invoker last = invoker;
List filters = ExtensionLoader.getExtensionLoader(Filter.class).