一、dubbo源码分析

一、整体设计

  dubbo整体设计以及调用用链路参照官网 http://dubbo.apache.org/zh-cn/docs/dev/design.html

二、dubbo的注册中心

  1、注册中心参照官网  http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html

  2、zk注册中心详解

    2.1、目录结构

      +- dubbo

        +- com.demo.service.HelloService

          +- consumers

            +- consumer://192.168.1.102/com.demo.service.HelloService?application=dubbo-demo-annotation-consumer&category=consumers&check=false&dubbo=2.0.2&init=false&interface=com.lagou.service.HelloService***

          +- providers

            +- dubbo://192.168.1.102:20880/com.demo.service.HelloService?anyhost=true&application=dubbo-demo-annotation-provider&deprecated=false&dubbo=2.0.2***           +- configuration           +- routers

      解释:       (1)、在服务启动的时候dubbo会在zk的根目录下创建一个dubbo的目录       (2)、dubbo跟节点下面是当前所拥有的接口名称,如果有多个接口,则会以多个子节点的形式展开       (3)、每个服务下面又分别有四个配置项         1)、consumers: 当前服务下面所有的消费者列表(URL)         2)、providers: 当前服务下面所有的提供者列表(URL)         3)、confifiguration: 当前服务下面的配置信息信息,provider或者consumer会通过读取这里的配置信息来获取配置         4)、routers: 当消费者在进行获取提供者的时,会通过这里配置好的路由来进行适配匹配规则     2.2、dubbo中的url       从2.1中咱们不难发现,无论是服务提供者还是服务消费者,在注册中心zk中都是以url的形式进行保存以便进行资源定位,所以咱们来具体看一下dubbo中的url       规则:protocol://host:port/path?key=value&key=value       例子:参考2.1中的目录结构中的consumer或者producer       (1)、对应源码(构造方法)          

 

       (2)、主要组成部分

          1)、protocol: 协议,一般像我们的 provider 或者 consumer 在这里都是人为具体的协议

          2)、host: 当前 provider 或者其他协议所具体针对的地址,比较特殊的像 override 协议所指定的host就是 0.0.0.0 代表所有的机器都生效

          3)、port: 和上面相同,代表所处理的端口号           4)、path: 服务路径,在 provider 或者 consumer 等其他中代表着我们真实的业务接口           5)、key=value: 这些则代表具体的参数,这里我们可以理解为对这个地址的配置。比如我们 provider中需要具体机器的服务应用名,就可以是一个配置的方式设置上去        (3)、dubbo中的URL与JAVA中的URL的区别           1)、dubbo中的URL支持参数的动态增减             

 

            

 

 

           2)、dubbo中的URL提供缓存功能,对一些基础的数据做缓存

            

 

             

 

         2.3

      

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...