前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sofa之配置RpcConfigs

Sofa之配置RpcConfigs

作者头像
克虏伯
发布2021-12-14 17:48:47
7870
发布2021-12-14 17:48:47
举报

加载配置

如下图1所示,init静态方法,首先加载sofa-rpc自带的json配置文件,将结果转换为map放到全局配置CFG中,之后加载sofa-rpc/rpc-config.json文件的内容,之后加载META-INF/sofa-rpc/rpc-config.json配置文件,最后加载System.getProperties()。

所以如果我们想重写默认的配置,可以自定义json文件,另外可以设置System.setProperties来覆盖。

图1

来看下loadCustom内容,获取所有对应的json文件,之后逐行读取文件的内容,转换为Map,之后再封装为CfgFile,这就完了?不,CfgFile先放到Collection之后,之后再通过rpc_cfg_order进行排序,排完序逐个放入CFG中

图2

设计点:

  1. 通过rpc.config.order进行CfgFile的排序,为什么这么设计,因为CFG是个map,存在value被覆盖的情况,所以通过rpc.config.order来灵活控制.
  2. 如图3的OrderedComparator,并没有写死按order从大到小还是小到大的顺序来排序,而是可控的

图3

Listener

全局配置的变更会触发Listener调用,如图4/图5所示,修改全局配置会触发Listener

这是个拓展点,Spring就是通过event/listener来做很多事情的

图4

图5

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加载配置
  • Listener
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档