zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Arduino-原理图标识
    python-垃圾回收机制
    利用浮力测密度
    sys模块-与python解释器交互的模块
    第十一章第二节 功率
    第十一章第一节 功
    类-描述器-把类对象方法转变为属性方式
    H5浏览器播放RTMP直播流
    如何查看某个端口被谁占用
    OBS第三方推流直播教程
  • 原文地址:https://www.cnblogs.com/heshana/p/13824194.html
Copyright © 2011-2022 走看看