服务注册
服务注册的流程如下
- 读取配置信息
- 将配置信息放入zookeeper
Dubbo的服务注册配置有很多种方式,大致有以下5种
- xml,属于bean初始化值
- -D 系统配置
- 配置中心——global全局配置
- 配置中心——app全局配置
可以在上面的页面上通过指定应用名配置单独的服务 - dubbo.properties文件
Dubbo会将这些配置信息全部读取出来,这个五个地方的配置信息分别存放在不同的容器中,不过在refresh
方法中会将这五个地方的配置信息汇总起来,之后会根据优先级读取相应的配置。
这个方法中会将所有配置信息存储在一个LinkedList中,最后也会按顺序取相应的配置信息,所以排在前面的优先级最高。
在getConfiguration
方法中会将除了xml配置的bean初始值之外的配置信息放入那个集合中
会发现顺序如下
-D 系统配置——>配置中心,app配置——>配置中心,global全局配置——>dubbo.properties文件
之后会将xml配置的bean初始值插入到这个集合中去,这里会有两种策略,一种是配置优先,一种是非配置优先
- 配置优先:-D 系统配置——>配置中心,app配置——>配置中心,global全局配置——>xml,bean初始值——>dubbo.properties文件
- 非配置优先:-D 系统配置——>xml,bean初始值——配置中心,app配置——>配置中心,global全局配置——>dubbo.properties文件
之后就会从集合中遍历属性并取得属性值,如果不为空就赋值
接着每个服务会别封装成一个URL,这个url中包括注册中心的地址和服务的配置信息
最后会将这个url存储在zookeeper中
配置的优先级
1.子节点覆盖父节点
2.子节点取父节点配置信息
服务暴露
export方法中暴露服务,启动服务器