dubbo---框架和支持的协议以及支持的注册中心

一. Dubbo框架

架构说明

1.虚线

虚线表示异步,实线表示同步。异步不阻塞线程性能高,同步阻塞线程必须等待响应结
果才能继续执行,相对性能低。

2.Provider
暴露服务的服务提供方。

3.Container
服务运行容器。Dubbo 完全基于 Spring 实现的。

4.Registry

服务注册与发现的注册中心。注册中心,放置所有 Provider 对外提供的信息。包含
Provider 的 IP,访问端口,访问遵守的协议,对外提供的接口,接口中有哪些方法等相关信
息。

5.Consumer
调用远程服务的服务消费方。

6.Monitor

统计服务的调用次调和调用时间的监控中心。监控中心,监控 Provider 的压力情况等。
每隔 2 分钟 Consumer 和 Provider 会把调用次数发送给 Monitor,由 Monitor 进行统计。

执行流程

  1. start:启动 Spring 容器时会把 Provider 启动。
  2. register:把 Provider 相关信息注册到 Registry 里
  3. subscribe:Consumer 从 Registry 中订阅 Provider 的信息
  4. notify:通知给 Consumer
  5. invoke:Consumer 根据 Registry 通知的信息进行调用 Provider 中方法。
  6. count:Consumer 和 Provider 把调用次数信息异步发送给 Monitor 进行统计。

二.支持的协议

1 Dubbo 协议(官方推荐协议)

优点:
采用 NIO 复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,
性能较好(推荐使用)
缺点:
大文件上传时,可能出现问题(不使用 Dubbo 文件上传)

2 RMI(Remote Method Invocation)协议

优点:
JDK 自带的能力。
缺点:
偶尔连接失败.

3 Hessian 协议

优点:
可与原生 Hessian 互操作,基于 HTTP 协议
缺点:
需 hessian.jar 支持,http 短连接的开销大

三.Dubbo 支持的注册中心

1 Zookeeper(官方推荐)

  1. 优点:
    支持分布式.很多周边产品. 2) 缺点:
    受限于 Zookeeper 软件的稳定性。Zookeeper 是一款专门为分布式架构提供辅助型处
    理的软件,稳定较优。

2 Multicast

  1. 优点:
    去中心化,不需要单独安装软件. 2) 缺点:
    2.2.1 Provider 和 Consumer 和 Registry

3 Redis

  1. 优点:
    支持集群,性能高
  2. 缺点:
    要求服务器时间同步.否则可能出现集群失败问题.

4 Simple

  1. 优点:
    标准 RPC服务.没有兼容问题
  2. 缺点:
    不支持集群.
posted @ 2021-08-19 14:52  是但啦  阅读(284)  评论(0)    收藏  举报