Netty实现dubbo的原理

引言

         微服务最核心的注册服务,以前一直用的springcloud,在听了网络视频对dubbo的讲解后加深理解,看了csdn讲解后还原了代码实现。

框架理论

     

dubbo 特点:

一个RPC框架,SOA框架

底层采用mina,netty长连接进行传输!典型的provider和cusomer模式!

有服务治理功能,提供服务的注册和发现!用zookeeper实现注册中心!

原理:

启动时候服务端会把所有接口注册注册中心,并且订阅configurators,服务消费端订阅provide,configurators,routers,订阅变更时,zk会推送providers,configuators,routers,启动时注册长连接,进行通讯!proveider和provider启动后,后台启动定时器,发送统计数据到monitor(监控中心)!提供各种容错机制和负载均衡策略!!

图解:

    盗图,zookeeper  作为registry

     

实现步骤

组件:

   Zookeeper、netty 。

      (Zookeeper容器,映射类和服务, 简易版完全可以用Map<类名,List<服务>>替代,此处用到zookeeper的持久化节点、临时节点)

步骤:

  1. 安装zookeeper ,java程序中建立连接。
  2. 服务注册,将对象名绑定到服务地址。com.dubbo.Icsdn -> 127.0.0.1:8888
  3. 消费端通过classname请求zookeeper返回服务地址IP:port
  4. 消费端Netty请求ip:port/classname/method
  5. 服务端netty回复classname/method

代码实现:

  https://github.com/heshan3662/dubbo-Netty

相关文章

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