Dubbo

Dubbo简介

Dubbo是Alibaba提供的一款分布式服务治理框架。
其中主要的流程如下

image.png

消费者

  • 动态代理:生成需要调用的接口;
  • Cluster:集群,其实就是从注册中心获取到服务列表;
  • LoadBalance:从上面的服务列表中选取一个服务提供者;
  • Protocol:协议层,就是说整个系统中,咱们对话的话需要怎么交流,可以理解为语言;
    比如说【单纯举例子,不一定是样子】:
    http协议有可能是这样子http://DemoService/sayHello?name="Dubbo"。
    Rmi:interface=DemoService,method=hello,param1 = name...
  • Exchange:经过协议的封装,再封装成Request请求
  • 网络通信层:通过Netty传输(主流),速度非常快,原理是NIO
  • 序列化:序列化成二进制进行网络传输
    消费者
  • Server:监听有没有请求;
  • 反序列化:将二进制反序列化成Request对象;
  • 协议层:选择一种协议解析数据;
  • 动态代理生成对象:比如说咱们DemoService的Impl。就是生成这个玩意,然后执行sayHello方法。

Dubbo网络底层通信原理

主要有以下几个角色,Netty;

  • Selector:负责监听Channel
  • Processor线程:工作中的线程,如果有请求指令会生成此线程;
  • ServerSocketChannel:负责监听端口号,然后对于不同的请求生成不同的channel;
  • Acceptor线程:比较特殊的Selector,负责轮询监听ServerSocketChannel有没有新的请求指令;
image.png

你可能感兴趣的:(Dubbo)