Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
67 lines (46 sloc) 2.55 KB
layout title key tags category date modify_date
article
104 dubbo实现了哪些微服务组件
A20190409030
编程 JAVA基础
blog
2019-04-09 22:19:30 +0800
2019-04-09 22:19:30 +0800

dubbo的整体架构

图片来源:http://dubbo.apache.org/docs/zh-cn/dev/sources/images/dubbo-framework.jpg

  • Config配置层。
  • Proxy动态代理层。
  • Registry注册中心层。
  • Cluster路由层。
  • Monitor监控层。
  • Protocol远程调用层。
  • Exchange信息交换层。
  • Transport网络传输层。
  • Serialize数据序列化层。

各层说明可靠参考dubbo光放文档 http://dubbo.apache.org/zh-cn/docs/dev/design.html

下面说明Dubbo实现各个微服务组件时,涉及到架构中的哪些层次。

服务发布与引用

涉及Config配置层。Dubbo推荐通过XML配置的方式发布以及引用服务,也可以扩展其它方式。

服务注册与发现

涉及Registry注册中心层,其核心流程逻辑如下。

  1. register注册。将服务端配置的服务信息注册到注册中心。
  2. subscribe订阅。消费端到注册中心订阅指定的服务。
  3. notify通知。注册中心将服务信息推送给消费端,同时如果服务信息有变化,也会推送变更。
  4. invoke调用。消费端根据获取的服务端信息,直接调用服务独断。
  5. count监控。消费端在调用过程中,会将调用信息推送给监控中心。

服务调用

涉及的层较多,包括Proxy代理层Protocol远程调用层Exchange信息交换层Transport网络传输层以及Serialize数据序列化层

  1. Proxy服务代理层。提供远程接口调用的代理,让远程调用更加透明,可以像本地方法调用一样使用。
  2. Protocol远程调用层。封装RPC调用,选择调用的具体细节,例如服务端客户端如何建立连接,如何管理连接,如何处理连接,选择什么样的网络协议等等。
  3. Exchange信息交换层。封装请求响应模式,也就是服务端如何处理连接:同步阻塞?同步非阻塞?异步非阻塞?
  4. Transport网络传输层。抽象 mina 和 netty 为统一接口。
  5. Serialize数据序列化层。请求响应数据的序列化处理。

服务治理

涉及Cluster路由层。包括负载均衡,路由,节点管理,异常重试等。

服务监控

涉及Monitor监控层。监控RPC调用次数以及时间。

You can’t perform that action at this time.