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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 1 应用架构演变 2 RPC 3 Dubbo概述 4 Dubbo配置 5 Dubbo协议 6 高...
    小小千千阅读 625评论 0 0
  • 什么是RPCRPC(Remote Procedure Call)是一种通过网络从远程计算机程序上请求服务,而不需要...
    Hitooo阅读 404评论 0 0
  • 本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...
    就这些吗阅读 870评论 0 0
  • 最近工作中接到一个需求,需要对一个Dubbo接口进行压力测试,测试其性能,之前一直使用jmeter做压力测试,在踏...
    码同学软件测试阅读 488评论 0 2
  • 夜莺2517阅读 127,779评论 1 9