元数据
元数据是什么?
元数据定义为描述数据的数据,在服务治理中,例如服务接口名,重试次数,版本号等等都可以理解为元数据。
在 2.7 之前,元数据一股脑丢在了注册中心之中,这造成了一系列的问题:
推送量大 -> 存储数据量大 -> 网络传输量大 -> 延迟严重
生产者端注册 30+ 参数,有接近一半是不需要作为注册中心进行传递;消费者端注册 25+ 参数,只有个别需要传递给注册中心。有了以上的理论分析,Dubbo 2.7 进行了大刀阔斧的改动,只将真正属于服务治理的数据发布到注册中心之中,大大降低了注册中心的负荷。
同时,将全量的元数据发布到另外的组件中:元数据中心。
----------------------------------以上摘自http://dubbo.apache.org/zh-cn/blog/dubbo-27-features.html----------------------------------------
首先在之前的时候,虽然他们说是把很多的注册信息都注册到了注册中心,但是远远还不满足于我们的需求,以至于我们在开发dubbo网关的时候,不能直接从注册中心中读取到这个东西。从而网关对泛化调用也无能为力(当然后续我们经过扫描的做了这个处理,但是不太优雅)。
现在有了元数据中心之后,首先由两个问题,怎么使用以及使用后的带来的价值?
ps: 上次在杭州的 dubbo Meetup 讲的三大中心时并没有什么感觉这些功能的应用场景,今天探析了它的实现方式之后,感觉异常的强大。
使用方式
目前支持redis和 Zookeeper 两种,下面示例使用的是Zookeeper
配置项 | 解释 |
---|---|
address | 注册地址 |
username | 用户名 |
password | 密码 |
timeout | 超时时间 |
group | 分组 |
retryTimes | 重试次数 |
retryPeriod | 重试间隔 |
cycleReport | 周期,默认每天 |
syncReport | 是否异步,默认异步 |
- xml 配置
<dubbo:metadata-report address="zookeeper://127.0.0.1:2181"/>
- java config 方式
ServiceConfig<