dubbo的metadata-report是做啥的
发版时,因为dubbo.metadata-report.address导致服务启动异常,就特意看了下其他项目的配置,结果咋还都配错了呢,但为什么项目启动都没报错呢,这个配错有什么影响呢?
理论上应该是这样配置的,redis://[username:password@]host:port[/database]
但代码里在用户名前面都多了一个redis:
redis://redis:username:password@host:6379最终配的都是这个鬼东西,这个多出来的红色部分有影响么?metadata-report又是做啥用的呢?
元数据是什么?元数据定义为描述数据的数据,在服务治理中,例如服务接口名,重试次数,版本号等等都可以理解为元数据。在 2.7 之前,元数据一股脑丢在了注册中心之中,这造成了一系列的问题:
推送量大 -> 存储数据量大 -> 网络传输量大 -> 延迟严重
生产者端注册 30+ 参数,有接近一半是不需要作为注册中心进行传递;消费者端注册 25+ 参数,只有个别需要传递给注册中心。有了以上的理论分析,Dubbo 2.7 进行了大刀阔斧的改动,只将真正属于服务治理的数据发布到注册中心之中,大大降低了注册中心的负荷。
同时,将全量的元数据发布到另外的组件中:元数据中心。元数据中心目前支持 redis(推荐),zookeeper。
元数据中心是dubbo2.7版本之后新增的功能,主要是为了减轻注册中心的压力,将部分存储在注册中心的内容放到元数据中心。元数据中心的数据只是给自己使用的,改动不需要告知对端,比如服务端修改了元数据,不需要通知消费端。这样注册中心存储的数据减少,同时大大降低了因为配置修改导致注册中心频繁通知监听者,从而大大减轻注册中心的压力。
一、配置
要使用元数据中心的功能,需要增加两项配置:
- 注册中心配置增加simplified=“true”,默认simplified=false; 那是不是默认不会用元数据中心的功能呢?
- 增加metadata-report配置
如果使用redis作为元数据中心存储,则定时会更新元数据。
参考:
Dubbo笔记 ㉔ :元数据中心_dubbo2.7元数据中心 local remote-CSDN博客
dubbo解析-详解元数据中心MetadataReport_metadata-report-CSDN博客