Dubbo底层架构原理(极简入门)

868 阅读2分钟

服务消费者

  • 动态代理:Proxy--生成动态代理对象

  • 负载均衡:Cluster,负载均衡,故障转移

  • 通信协议:Protocol,filter机制,http、rmi、dubbo等协议

    • 不同的网络通信协议会以不同的请求格式,将请求发送出去

  • 信息交换:Exchange,Request和Response

    • 对于你的协议的格式组织好的请求数据,需要进行一个封装,Request

  • 网络通信框架:Transport,netty、mina

  • 序列化:封装好的请求如何序列化成二进制数组,通过netty/mina发送出去


服务提供者

  • 网络通信(内含反序列化):Transport,基于netty/mina实现的Server进行请求监听

  • 信息交换:Exchange,Response

    • 解析request请求

  • 通信协议:Protocol,filter机制

    • 根据特定协议来解析请求提供服务

  • 动态代理:Proxy


Dubbo底层通信原理(netty)

  • 首先netty中会有一个Acceptor线程通过Selector组件对ServerSocketChannel进行网络事件的轮询,而ServerSocketChannel则会监听自己的端口号,感知连接和业务请求

  • 一旦和服务消费者建立连接之后,ServerSocketChannel就生成SocketChannel(每一个服务消费者对应一个SocketChannel)

  • 这时会有几个processor线程(携带Selector组件)对SocketChannel进行业务请求的轮询(一个Selector可以对多个SocketChannel进行轮询)

  • 然后服务提供者进行请求的解析,提供服务之后进行响应

  • 响应通过Processor线程发送往SocketChannel,然后经由服务提供者的netty框架中的SocketChannel发送至服务消费者中的网络通信netty框架中的SocketChannel

  • 在服务消费者中的netty框架中同样也有processor(携带Selector组件)线程对socketChannel进行网络事件的轮询,接收提供者给予的响应