本篇内容主要讲解“dubbo分层设计有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“dubbo分层设计有哪些”吧!
dubbo分层设计:
config 配置层:对外配置接口,以 ServiceConfig
, ReferenceConfig
为中心,可以直接初始化配置类,也可以通过 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
exchange 信息交换层:封装请求响应模式,同步转异步,以 Request
, Response
为中心,扩展接口为 Exchanger
, ExchangeChannel
, ExchangeClient
, ExchangeServer
transport 网络传输层:抽象 mina 和 netty 为统一接口,以 Message
为中心,扩展接口为 Channel
, Transporter
, Client
, Server
, Codec
serialize 数据序列化层:可复用的一些工具,扩展接口为 Serialization
, ObjectInput
, ObjectOutput
, ThreadPool
dubbo设计原则:
dubbo注册中心
Multicast注册中心:Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。
Zookeeper注册中心:Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 阿里内部并没有使用zookeeper注册中心。
Redis注册中心:阿里内部并没有使用Redis注册中心,而是使用的基于数据库的注册中心。
使用 Redis 的 Key/Map 结构存储数据结构:
使用 Redis 的 Publish/Subscribe 事件通知数据变更:
通过事件的值区分事件类型:register
, unregister
, subscribe
, unsubscribe
普通消费者直接订阅指定服务提供者的 Key,只会收到指定服务的 register
, unregister
事件
监控中心通过 psubscribe
功能订阅 /dubbo/*
,会收到所有服务的所有变更事件
Simple注册中心:Simple 注册中心本身就是一个普通的 Dubbo 服务,可以减少第三方依赖,使整体通讯方式一致。
到此,相信大家对“dubbo分层设计有哪些”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!