最新要闻
- 魔兽世界里RN是什么意思?魔兽世界RN含义解释
- 天仙配电视剧大结局是什么?天仙配电视剧演员表
- 巧克力中的劳斯莱斯是什么牌子?巧克力中的劳斯莱斯多少钱?
- 淘宝金币有什么用处?淘宝金币怎么抵扣现金?
- 女生坐位体前屈满分多少厘米?女生坐位体前屈的技巧有哪些?
- 冯小宁战争三部曲是哪三部?冯小宁战争三部曲观看顺序
- 春眠不觉晓处处蚊子咬下一句是什么?春眠不觉晓改编打油诗
- 每日快报!年度必看神作!《阿凡达2》全球票房破9亿美元:内地破7.3亿
- 3排8座拉全家 路虎卫士130国内预售:119.8万起
- 新突破!我国建成首个年产500亿立方米特大型产气区
- 环球观天下!学AMD大涨价!Intel B760新一代平民主板来了 华硕等最快本周出货:涨幅不小
- 天天热门:马斯克被曝架子大:访客等1个小时才能见人 还不能先开口
- 世界热点!“更适合国内路况”的CLTC新标准 为啥更坑“电动爹”了?
- 今日热搜:PC玩家狂喜:PS3模拟器已可运行所有PS3游戏
- 一瓶的钱现在买3件!杰威尔男士护肤套装大促:原价100多现在30包邮
- 环球今日讯!顾客吐槽看《阿凡达2》需30元购3D眼镜 凭啥买非常不合理:影院回应
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界热门:Dubbo 可扩展性设计
扩展设计理念
可扩展性是任何一个系统所追求的,对于 Dubbo 来说是同样适用。
(相关资料图)
什么是可扩展性
可扩展性是一种设计理念,代表了我们对未来的一种预想,我们希望在现有的架构或设计基础上,当未来某些方面发生变化的时候,我们能够以最小的改动来适应这种变化。
可扩展性的优点
可扩展性的优点主要表现模块之间解耦,它符合开闭原则,对扩展开放,对修改关闭。当系统增加新功能时,不需要对现有系统的结构和代码进行修改,仅仅新增一个扩展即可。
扩展实现方式
一般来说,系统会采用 Factory、IoC、OSGI 等方式管理扩展(插件)生命周期。考虑到 Dubbo 的适用面,不想强依赖 Spring 等 IoC 容器。而自己造一个小的 IoC 容器,也觉得有点过度设计,所以选择最简单的 Factory 方式管理扩展(插件)。在 Dubbo 中,所有内部实现和第三方实现都是平等的。
Dubbo 中的可扩展性
- 平等对待第三方的实现。在 Dubbo 中,所有内部实现和第三方实现都是平等的,用户可以基于自身业务需求,替换 Dubbo 提供的原生实现。
- 每个扩展点只封装一个变化因子,最大化复用。每个扩展点的实现者,往往都只是关心一件事。如果用户有需求需要进行扩展,那么只需要对其关注的扩展点进行扩展就好,极大的减少用户的工作量。
Dubbo 扩展的特性
Dubbo 中的扩展能力是从 JDK 标准的 SPI 扩展点发现机制加强而来,它改进了 JDK 标准的 SPI 以下问题:
- JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。
- 如果扩展点加载失败,连扩展点的名称都拿不到了。比如:JDK 标准的 ScriptEngine,通过 getName() 获取脚本类型的名称,但如果 RubyScriptEngine 因为所依赖的 jruby.jar 不存在,导致 RubyScriptEngine 类加载失败,这个失败原因被吃掉了,和 ruby 对应不起来,当用户执行 ruby 脚本时,会报不支持 ruby,而不是真正失败的原因。
用户能够基于 Dubbo 提供的扩展能力,很方便基于自身需求扩展其他协议、过滤器、路由等。下面介绍下 Dubbo 扩展能力的特性。
- 按需加载。Dubbo 的扩展能力不会一次性实例化所有实现,而是用哪个扩展类则实例化哪个扩展类,减少资源浪费。
- 增加扩展类的 IOC 能力。Dubbo 的扩展能力并不仅仅只是发现扩展服务实现类,而是在此基础上更进一步,如果该扩展类的属性依赖其他对象,则 Dubbo 会自动的完成该依赖对象的注入功能。
- 增加扩展类的 AOP 能力。Dubbo 扩展能力会自动的发现扩展类的包装类,完成包装类的构造,增强扩展类的功能。
- 具备动态选择扩展实现的能力。Dubbo 扩展会基于参数,在运行时动态选择对应的扩展类,提高了 Dubbo 的扩展能力。
- 可以对扩展实现进行排序。能够基于用户需求,指定扩展实现的执行顺序。
- 提供扩展点的 Adaptive 能力。该能力可以使的一些扩展类在 consumer 端生效,一些扩展类在 provider 端生效。
从 Dubbo 扩展的设计目标可以看出,Dubbo 实现的一些例如动态选择扩展实现、IOC、AOP 等特性,能够为用户提供非常灵活的扩展能力。
Dubbo 扩展加载流程
Dubbo 加载扩展的整个流程如下:
主要步骤为 4 个:
- 读取并解析配置文件
- 缓存所有扩展实现
- 基于用户执行的扩展名,实例化对应的扩展实现
- 进行扩展实例属性的 IOC 注入以及实例化扩展的包装类,实现 AOP 特性
如何使用 Dubbo 扩展能力进行扩展
下面以扩展协议为例进行说明如何利用 Dubbo 提供的扩展能力扩展 Triple 协议。
(1) 在协议的实现 jar 包内放置文本文件:META-INF/dubbo/org.apache.dubbo.remoting.api.WireProtocol
tri=org.apache.dubbo.rpc.protocol.tri.TripleHttp2Protocol
(2) 实现类内容
@Activatepublic class TripleHttp2Protocol extends Http2WireProtocol { // ...}
说明下:Http2WireProtocol 实现了 WireProtocol 接口
(3) Dubbo 配置模块中,扩展点均有对应配置属性或标签,通过配置指定使用哪个扩展实现。比如:
从上面的扩展步骤可以看出,用户基本在黑盒下就完成了扩展。
Dubbo 扩展的应用
Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。
Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo 原生实现,来满足自身业务需求。
使用场景
- 如果你需要自定义负载均衡策略,你可以使用 Dubbo 扩展能力。
- 如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。
- 如果你需要实现自定义的过滤器,你可以使用 Dubbo 扩展能力。
Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 SPI 扩展实现
原文首于 Dubbo 官网:https://cn.dubbo.apache.org/zh/overview/what/extensibility/欢迎在 https://github.com/apache/dubbo 给 Dubbo Star。搜索关注官方微信公众号:Apache Dubbo,了解更多业界最新动态,掌握大厂面试必备 Dubbo 技能
世界热门:Dubbo 可扩展性设计
Web前端--HTML+Canvas+Js实现3D魔方小游戏
世界观点:微信Native支付(扫码支付)商户配置
魔兽世界里RN是什么意思?魔兽世界RN含义解释
天仙配电视剧大结局是什么?天仙配电视剧演员表
巧克力中的劳斯莱斯是什么牌子?巧克力中的劳斯莱斯多少钱?
淘宝金币有什么用处?淘宝金币怎么抵扣现金?
女生坐位体前屈满分多少厘米?女生坐位体前屈的技巧有哪些?
冯小宁战争三部曲是哪三部?冯小宁战争三部曲观看顺序
春眠不觉晓处处蚊子咬下一句是什么?春眠不觉晓改编打油诗
每日快报!年度必看神作!《阿凡达2》全球票房破9亿美元:内地破7.3亿
3排8座拉全家 路虎卫士130国内预售:119.8万起
新突破!我国建成首个年产500亿立方米特大型产气区
环球观天下!学AMD大涨价!Intel B760新一代平民主板来了 华硕等最快本周出货:涨幅不小
【快播报】教程干货!JNPF快速搭建库存管理与财务管理板块
天天热门:马斯克被曝架子大:访客等1个小时才能见人 还不能先开口
世界热点!“更适合国内路况”的CLTC新标准 为啥更坑“电动爹”了?
今日热搜:PC玩家狂喜:PS3模拟器已可运行所有PS3游戏
一瓶的钱现在买3件!杰威尔男士护肤套装大促:原价100多现在30包邮
环球今日讯!顾客吐槽看《阿凡达2》需30元购3D眼镜 凭啥买非常不合理:影院回应
【环球快播报】【爬虫+数据清洗+可视化分析】舆情分析哔哩哔哩"阳了"的评论
Python爬虫实战,requests+tqdm模块,爬取漫画之家漫画数据(附源码)
上海一车主至少5次倒车撞击后车:后车特斯拉全程不动 网友吐槽
热门:《三体》动画口碑直降!豆瓣跌破6分 网友发现人脸模型重复利用
讯息:5MHz处理器+128MB内存:成功运行Win7旗舰版
天天百事通!2022年度七大叫好又叫座游戏 看完手痒别怪我
观察:苹果中国开启新年福利:iPhone 13等降价优惠千元!
当前速看:Ubuntu下的NVIDIA显卡【驱动&CUDA 安装与卸载】
韩国报告首例“食脑虫”病例:一天即死亡、不会人传人
快报:葛优母亲施文心去世:享年94岁 从事电影文学编辑30年
【环球新视野】《西游记之七十二变》终极预告:孙悟空、牛魔王一起学法术
每日讯息!EPIC喜加一:国产之光3A游戏《暗影火炬城》免费送 省了108元
RTX 4070 Ti跑分偷跑:怎么灭掉了RTX 3090 Ti!
滚动:在虚幻引擎中使用蓝图实现简单的对话
每日视讯:Wi-Fi 6路由杀到169元 荣耀路由X4 Pro发布:三个千兆网口
世界新消息丨豆瓣2022年度电影榜单出炉:《阿凡达2》入榜
天天热资讯!虚假新闻检测(MAC)《Hierarchical Multi-head Attentive Network for Evidence-aware F
天天讯息:Atcoder Beginner Contest ABC 283 Ex Popcount Sum 题解 (类欧几里得算法)
环球微资讯!一群环保人士 为何想限制游戏发展?
热资讯!首发199元 荣耀手环7发布:1.47英寸大屏 支持全天候血氧监测
韩国人造肉需求激增:近一半韩国年轻人买过吃过人造肉
02年小伙3年打6份工买车 正能量感染网友:送过外卖、做过服务员等
首发5680元 汉王N10 Max墨水平板发布:13.3英寸大屏
微头条丨失业率最高的西班牙:开始薅中国羊毛
短讯!JMeter
第四章 --------------------XAML名称空间
环球观察:快2023年了还有友商拿8+128卡位凑数 一加11直接12G起步:欢迎友商跟进
天天新消息丨纯可可脂 怡浓55%-100%黑巧克力35元起
N多玩家插反PS5游戏盘!官方发文纠正
环球聚焦:功耗高、死机!AMD正在拼命优化RX 7900驱动
男子自曝无聊送外卖结果2小时挣150 网友质疑摆拍:根本没地方停车
天天消息!AcWing. 1146 新的开始
C919起飞验证!波音、中国商飞新合作:开发全新飞机材料
全球热点!20000转风扇看得见!红魔8 Pro+氘锋透明版图赏
全球头条:想堵车都难 福特车路协同系统落地国内六城
记录--vue.config.js 的完整配置(超详细)!
当前动态:双旦狂欢价:腾讯视频/优酷视频会员5折起
官宣油耗3.8L 实际7L以上!吉利帝豪L雷神Hi·P混动遭出租车司机集体维权
超越索尼PS4!任天堂Switch全球销量达1.18亿台:史上销量第四主机
环球观热点:东航C919今日起验证飞行:持续至2月中旬 商业载客不远了
全球观察:钱不好赚了?苹果今年第四季度净利或下降8%以上
Kubernetes监控手册04-监控Kube-Proxy
天天微头条丨Zabbix技术分享——snmp异常排查指南
对不起,你做的 A/B 实验都是错的——火山引擎 DataTester 科普
当前消息!与时代共命运:数智时代的到来意味着什么?
AcWing1144. 连接格点
每日快看:攀升年底大促!16GB轻薄本仅1698元
【天天报资讯】拆分数据库变相涨价!知网滥用市场支配地位被罚8760万元
焦点播报:神了!1919年一幅漫画预言了手机 这六个场景太真实
今日最新!蚊子变疫苗:中科院新研究可以从源头抑制新发传染病
视点!网友青岛莱西湖附近偶遇老虎 官方回应:已捉回、未造成伤害
全球速递!项目播报 | 方正璞华×连森电子,打造电子材料行业PLM系统的新标杆!
今日快看!Python爬虫学习:Cookie 和 Session 的区别是什么?
环球短讯!Python模块学习,模块是,什么
全球观速讯丨飞项三招教你用协同工具杜绝远程办公“摸鱼”
XYplorer使用教程
李斌再度回应蔚来数据泄露 公司赔破产也不会妥协
【天天新视野】7.4GB/s速度 忆联发布数据中心级SSD:ES.3版容量超15TB
你期待谁?兔年春晚首次大联排引围观 沈腾马丽等明星现身:网友兴奋
奥运冠军还是学霸!谷爱凌晒斯坦福大学首份成绩单:全科满分
每日精选:续航200km有快充 吉利熊猫mini新春版官图发布:妹子最爱
【播资讯】Jaeger&ElasticSearch存储链路追踪数据
环球聚焦:开源漏洞数量增长33%!企业安全债务不堪重负丨行业数据
重拾低价策略!京东善做PPT、说假大空话的高管被刘强东拿下:就是骗子
“史诗级”暴风雪吹乱北美圣诞:40年最冷!节日档期票房泡汤
当前快报:频放生、卖鳄雀鳝!违法放生、丢弃外来入侵物种将被严惩 网友赞
全球简讯:云南女子取快递发现包裹长菌子:感觉很神奇
著名动画艺术家严定宪去世 作品有《大闹天宫》《哪吒闹海》等
天天百事通!【年终总结】求职面试一定要扬长避短
没sei了!父亲哄4岁女儿签20年不交男友合约 网友乐翻
智己汽车:一手好牌打得稀烂
全球看热讯:AcWing244.谜一样的牛
6旬大爷花40年收藏670辆老爷车:耗资4亿元 最爱这品牌
环球视点!美国肯尼迪国际机场一客机发生火情:致5人受伤
天天视讯!男子喂海鸥 头发被当成鸟窝不停被啄
新资讯:接到推销电话后男子“神操作”获赔500元 网友:学到了
环球焦点!真心刹不住 实拍火车撞上货车:动能太强、瞬间脱轨
349元 小米推出首款米家智能鱼缸:半年免换水、支持远程投食
世界快资讯丨欧洲电价有多离谱?开电车比开油车还要贵 对比国内差距大
天天新资讯:广州热门景区重现“人山人海”:订票量猛增