dubbo是什么dubbo是一个分布式服务中间件 , 是高性能和透明化的RPC远程服务调用解决方案 , 主要通过资源调度和服务治理来解决分布式架构下服务资源浪费以提高集群的使用率 。核心部分包含:
- 远程通讯:提供多种基于长连接的NIO的抽象封装 , 包括多种线程模型 , 序列化方式 , 以及请求-响应模式的信息交互
- 集群容错:提供基于接口方法的透明化远程调用 , 包括多协议支持 , 软负载均衡 , 失败容错 , 地址路由 , 动态配置的集群策略
- 服务发现:基于注册中心目录服务 , 使服务消费者能动态查找服务提供者 , 使地址透明 , 服务提供者可以根据流量平滑增加节点
1.dubbo架构-组件角色在深入架构前 , 先了解一下dubbo的组件角色 , 如下图:
文章插图
- Provider:暴露服务的服务提供方
- Container:服务运行容器
- Registry:服务注册与发现的注册中心
- Consumer:调用远程服务的服务消费方
- Monitor:统计服务调用次数和耗时的监控中心
- 服务容器Container负责启动 , 加载 , 运行服务提供者 。
- 服务提供者Provider在启动时 , 向注册中心注册自己提供的服务 。
- 服务消费者Consumer在启动时 , 向注册中心订阅自己所需的服务 。
- 注册中心Registry返回服务提供者地址列表给消费者 , 如果有变更 , 注册中心将基于长连接推送变更数据给消费者 。
- 服务消费者Consumer , 从提供者地址列表中 , 基于软负载均衡算法 , 选一台提供者进行调用 , 如果调用失败 , 再选另一台调用 。
- 服务消费者Consumer和提供者Provider , 在内存中累计调用次数和调用时间 , 定时每分钟发送一次统计数据到监控中心Monitor 。
文章插图
问:各组件角色之间是采用长连接还是短连接交互的?为什么? 答:服务提供者->消费者 , 服务提供者->注册中心 , 服务消费者->注册中心 。以上三个交互环节采用的是长连接 。至于为什么?笔者分析是因为基于注册中心的动态服务发现与注册机制 , 所以需要通过心跳的方式实时检测节点的状态
2.dubbo架构-模型分层先来看一下dubbo这个中间件的领域模型分层结构 , 如下图:
文章插图
中间件架构分层设计:
- 服务接口层(Service):该层是与实际业务逻辑相关的 , 根据服务提供方和服务消费方的业务设计对应的接口和实现 。
- 配置层(Config):对外配置接口 , 以ServiceConfig和ReferenceConfig为中心 , 可以直接new配置类 , 也可以通过spring解析配置生成配置类 。
- 服务代理层(Proxy):服务接口透明代理 , 生成服务的客户端Stub和服务器端Skeleton , 以ServiceProxy为中心 , 扩展接口为ProxyFactory 。
- 服务注册层(Registry):封装服务地址的注册与发现 , 以服务URL为中心 , 扩展接口为RegistryFactory、Registry和RegistryService 。可能没有服务注册中心 , 此时服务提供方直接暴露服务 。
- 集群层(Cluster):封装多个提供者的路由及负载均衡 , 并桥接注册中心 , 以Invoker为中心 , 扩展接口为Cluster、 Directory、Router和LoadBalance 。将多个服务提供方组合为一个服务提供方 , 实现对服务消费方来透明 , 只需要与一个服务提供方进 行交互 。
- 监控层(Monitor):RPC调用次数和调用时间监控 , 以Statistics为中心 , 扩展接口为MonitorFactory、Monitor和MonitorService 。
- 远程调用层(Protocol):封将RPC调用 , 以Invocation和Result为中心 , 扩展接口为Protocol、Invoker和 Exporter 。Protocol是服务域 , 它是Invoker暴露和引用的主功能入口 , 它负责Invoker的生命周期管理 。Invoker是实体 域 , 它是Dubbo的核心模型 , 其它模型都向它靠扰 , 或转换成它 , 它代表一个可执行体 , 可向它发起invoke调用 , 它有可能是一个本地的实现 , 也可能是 一个远程的实现 , 也可能一个集群实现 。
推荐阅读
- 网站服务器选择linux系统或windows系统的区别
- 使用通配符*来做DNS解析
- 淘宝服务类商品退货规则 淘宝仅退款规则
- 快手代运营公司有哪些 快手一级代理服务商
- VPS、云服务器、虚拟主机、物理服务器的含义与区别
- 云服务器真的更省钱 云服务器一年多少钱
- 3c数码货源网 淘宝的3c数码包括什么
- 抖音小店佣金和平台服务费多少 抖音小店佣金扣收费标准服装
- 服务器突遭攻击,被勒索病毒入侵,和黑客的攻防战
- 六种常用的微服务架构设计模式