本篇内容主要讲解“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设计原则:
采用 Microkernel + Plugin 模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的,也就是 Dubbo 的所有功能点都可被用户自定义扩展所替换。
采用 URL 作为配置信息的统一格式,所有扩展点都通过传递 URL 携带配置信息。
dubbo注册中心
Multicast注册中心:Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。
Zookeeper注册中心:Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 阿里内部并没有使用zookeeper注册中心。
Redis注册中心:阿里内部并没有使用Redis注册中心,而是使用的基于数据库的注册中心。
使用 Redis 的 Key/Map 结构存储数据结构:
主 Key 为服务名和类型
Map 中的 Key 为 URL 地址
Map 中的 Value 为过期时间,用于判断脏数据,脏数据由监控中心删除 [3]
使用 Redis 的 Publish/Subscribe 事件通知数据变更:
通过事件的值区分事件类型:register
, unregister
, subscribe
, unsubscribe
普通消费者直接订阅指定服务提供者的 Key,只会收到指定服务的 register
, unregister
事件
监控中心通过 psubscribe
功能订阅 /dubbo/*
,会收到所有服务的所有变更事件
Simple注册中心:Simple 注册中心本身就是一个普通的 Dubbo 服务,可以减少第三方依赖,使整体通讯方式一致。
到此,相信大家对“dubbo分层设计有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。