最新要闻
- 视焦点讯!努比亚Z50散热堆料离谱:散热总面积达到36462m㎡
- 中国光纤之父赵梓森逝世 享年91岁:拉出了我国第一根光纤
- 世界观热点:苹果妥协了!将开门迎接第三方应用商店 用户褒贬不一
- 杭州疑似有陨石掉落:一团火球 照亮夜空
- 《隐秘的角落》游戏来了:Steam版定档明年1月18日
- 【时快讯】可以薅羊毛了!网易云音乐TV版正式上线:免费送3个月会员
- 天天快报!男子花12万买世界杯彩票没中要求退款 理由气煞店老板
- 天天热头条丨微信全新朋友圈点赞互动广告上线:点下就能放烟花秀
- 天天热资讯!下单15分钟送到:上海开通首条美团无人机常态化航线
- 环球关注:IMDb 8.2分!《阿凡达2》口碑爆棚 影院回应票价高:消费者不缺钱缺服务
- OPPO Find N2 Flip外屏惊艳:支持快捷回复、锁屏小游戏
- 第二家通吃NVIDIA、AMD、Intel的显卡品牌诞生!这也太贵了
- 天天实时:公牛发布航天级品质超薄插座:可承受2万次拔插
- 环球微头条丨跌破零下40度!内蒙古出现极寒冰雾天气:冷到“冒白烟”
- OPPO Find N成为全国销量第二折叠屏!一经发布就大获成功
- 微速讯:首次使用钛合金螺丝!OPPO Find N2仅233g:折叠屏比iPhone还轻
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天微动态丨自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记【原创】【开源】
(相关资料图)
痛点
1. bsf底层依赖springcloud,影响bsf更新springboot新版本和整体最新技术版本升级。2. eureka已经闭源,且框架设计较重,同时引入eureka会自行引入较多springcloud相关包和组件。方案
1. 自研轻量级高性能rpc框架Bsf APIRegistry。目标
Bsf APIRegistry需要解决的关键痛点:1. 代码简单,简单,简单!框架实现要轻量,容易扩展,这样性能扩展也会很高。2. 要兼容旧项目@FeignClient,业务开发零改造代码,实现业务零感知无缝迁移。3. 引入的第三方组件越少越好,以后bsf组件冲突问题也会少。(本地服务启动时间应该也会比eureka注册中心快很多)4. 高性能,高扩展能力,可以支持未来服务上万节点在线。5. 解决现有本地调试痛点。(开发环境在阿里云容器中,要实现多人开发本地测试在线联调!)6. 支持无注册中心方式使用和无缝迁移。(可以借助k8s自带负载均衡网关,兼容场景并使用无注册中心架构)技术要求
Bsf APIRegistry需要具备几个关键技术点:- 支持HttpUrlConnection,HttpClient建立的连接池及扩展。
- 支持轮训模式负载均衡及扩展。
- 支持消费者端检测故障,临时转移到可用服务,待服务故障恢复后恢复调用。
- 支持redis注册中心及扩展,以及无注册中心架构。
- 支持protobuf协议,整体rpc性能会有较大提升。
架构示意图
整体参考按照eureka的技术原理,以bsf-core框架为核心,优先扩展实现redis注册中心方案。同时整体架构考虑eureka注册中心的兼容性使用,@feignClient注解的feign的兼容性api协议编写,支持双注册中心部署和无缝迁移方案,从而达到开发人员零改动,无感知的目标。同时redis单机可以支持上万客户端链接,同样redis也支持主从高可用分布式部署,故采用redis做注册中心也可以支持上万的分布式服务节点同时在线和注册中心高可用支持。在框架层面注册中心抽象剥离实现可扩展,也可以为更好更高性能的注册中心实现做扩展能力支持。消费者端RPC调用生命周期图
整体rpc调用会经历客户端@ApiClient(兼容@FeignClient注解)协议解析为RPC Request信息,通过RPC负载均衡器获取服务列表的可用节点(排除故障节点),进行RPC编码器进行编码(json或者protobuf等),再通过RPC 连接池(http连接池)获取可用tcp连接调用远程rpc结果,然后对rpc结果进行RPC解码器解码,最终返回RPC对象结果。消费者端RPC启动初始化
整体rpc框架启动时会经历一次初始化,通过包扫描@ApiClient(兼容@FeignClient注解)相关的协议接口类,会对协议接口类进行透明代理,并注册代理实例到springboot bean中。兼容eureka模式的无缝迁移方案
为了保证无缝迁移和开发人员无感知,在bsf sdk层面对@FeignClient(feign调用)做协议兼容支持,这样理论上开发人员无需改动旧代码;同时2.1 版本bsf sdk层面实现双注册中心兼容(支持eureka server和bsf ApiRegistriy同时在线)去确保平滑迁移;在bsf sdk中加入“测试模式”,通过apollo配置中心动态修改模式,支持框架层面随时切换使用eureka server和ApiRegistry任意注册中心调用rpc,也可以对rpc结果进行同步核对结果集校验+动态报警(确保协议兼容验证)来确保可以兼容稳定迁移和迁移实时回滚。ApiRegistry开源地址
地址:https://gitee.com/chejiangyi/free-bsf-all/tree/2.2-SNAPSHOT/free-bsf-apiregistry包含源码,更多详细配置,实践和场景支持记录。源码核心模块其中核心类就两三个,源码总共也就10几个类,代码简单,逻辑简单(核心就是为了轻量!!!),一般在10分钟就可以看明白整体结构和代码。小白快速上手
- 引用包
free-bsf-api:为协议包,包含ApiRegistry通用协议,用在业务项目协议层。free-bsf-core:为bsf核心包,一般为工具类为主。free-bsf-apiregistry:为bsf ApiRegistry实现包。free-bsf-api com.free.bsf 2.2-SNAPSHOT free-bsf-core com.free.bsf 2.2-SNAPSHOT free-bsf-apiregistry com.free.bsf 2.2-SNAPSHOT
- properties配置:
#springboot 应用名spring.application.name=free-demo-provider#一键启用开关,默认false,重启后生效bsf.apiRegistry.enabled=true#支持ApiClient/FeignClient注解方式的Rpc拦截,重启后生效,默认falsebsf.apiRegistry.apiClientAspect.enabled=true#rpcClient 扫描@ApiClient/@FeignClient注解的包,以逗号分割多个【rpc调用必填】bsf.apiRegistry.rpcClient.basePackages=com.xxxx.xxxx#注册中心redis实现的,redis地址格式:127.0.0.1:6379(无密码登陆)bsf.apiRegistry.registry.redis.host=XXX.XXX.XXX.XXX:6379
- api协议代码示例
//兼容@FeginClient@ApiClient(name = "lmc-test-provider",path = "/")public interface CustomerProvider { /*接口协议定义*/ //支持GetMapping,PostMapping @PostMapping("/test") //支持@RequestParam,@RequestBody ApiResponseEntitytest(@RequestParam("str") String str);}
总结
ApiRegistry 为近期技术问题解决的随手之作,虽自测无太大问题,但目前还需要真实迁移落地和技术升级(包括可能的bug修复)。技术无捷径,勤做笔记,点滴进步,与君共勉!!!by 车江毅技术vp2022-12-15其他博文:高效能全链路性能压测笔记 https://www.cnblogs.com/chejiangyi/p/16900586.html五个维度打造研发管理体系 https://www.cnblogs.com/chejiangyi/p/15420637.html高效能研发体系建设概论 https://www.cnblogs.com/chejiangyi/p/15000543.html-
天天微动态丨自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记【原创】【开源】
自研api服务注册中心,模拟eureka的实现原理实现,兼容旧feign的调用模式。支持服务故障转移,负载均衡,注...
来源: -
【独家】图形用户界面(GUI)编程可以学习C++ Builder,多图、实例、书籍
个人觉得SDK纯API方式编写Windows程序已经过时了,效率太低,了解一下原理就可以了,主要是消息机制。图...
来源: 天天微动态丨自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记【原创】【开源】
【独家】图形用户界面(GUI)编程可以学习C++ Builder,多图、实例、书籍
17 Java内存模型与线程_Java与线程
视焦点讯!努比亚Z50散热堆料离谱:散热总面积达到36462m㎡
中国光纤之父赵梓森逝世 享年91岁:拉出了我国第一根光纤
世界观热点:苹果妥协了!将开门迎接第三方应用商店 用户褒贬不一
杭州疑似有陨石掉落:一团火球 照亮夜空
环球要闻:AIRIOT答疑第2期|如何使用物联网平台的数据采集与控制引擎?
《隐秘的角落》游戏来了:Steam版定档明年1月18日
【时快讯】可以薅羊毛了!网易云音乐TV版正式上线:免费送3个月会员
天天快报!男子花12万买世界杯彩票没中要求退款 理由气煞店老板
天天热头条丨微信全新朋友圈点赞互动广告上线:点下就能放烟花秀
天天热资讯!下单15分钟送到:上海开通首条美团无人机常态化航线
世界速读:BaseDet: 走过开发的弯路
今日热门!引迈信息荣登「2022低代码企业50强」:JNPF,你的不二选择!
环球关注:IMDb 8.2分!《阿凡达2》口碑爆棚 影院回应票价高:消费者不缺钱缺服务
OPPO Find N2 Flip外屏惊艳:支持快捷回复、锁屏小游戏
第二家通吃NVIDIA、AMD、Intel的显卡品牌诞生!这也太贵了
天天实时:公牛发布航天级品质超薄插座:可承受2万次拔插
环球微头条丨跌破零下40度!内蒙古出现极寒冰雾天气:冷到“冒白烟”
环球微速讯:SQL的使用总结
天天快资讯:WPF深入简出(一)入门必看
观热点:【机器学习】李宏毅——浅谈机器学习原理+鱼与熊掌兼得的深度学习简述
当前动态:前后端AES加密解密,CryptoJS和Java实现
热讯:记录--手把手带你开发一个uni-app日历插件(并发布)
OPPO Find N成为全国销量第二折叠屏!一经发布就大获成功
微速讯:首次使用钛合金螺丝!OPPO Find N2仅233g:折叠屏比iPhone还轻
OPPO Find N2内外一致好屏:双120Hz+双E6 可自由悬停
让玩家心动的定制 ROG 6游戏手机《暗黑破坏神:不朽》典藏限量版图赏
OPPO Find N2 233g比直板机还轻!央视点赞:刷新折叠屏手机新纪录
【世界速看料】LeetCode HOT 100:旋转图像
环球头条:特斯拉中国上线490元酒杯 限量卖 网友吐槽智商税
世界今日讯!女子连吃5天感冒药 多脏器功能衰竭:专家提醒小心这些症状
IT工程师哪里工资最高?美国仅排第二 第一收入超过70万
天天看热讯:帧数暴涨40%!《巫师3》次时代版画质优化指南
20万级大杀器 长安深蓝首款SUV曝光:增程、纯电全都有
【天天速看料】Shell 标准输入和输出
信息:公司新来一个同事,把网关系统设计的炉火纯青!(万能通用,稳的一批。。)
当前视讯!易基因|NSUN2介导RNA m5C修饰促进食管鳞状细胞癌进展的表观调控机制 | 肿瘤研究
ThingsBoard前端项目的安装与启动
【时快讯】RELIC库学习
全球看热讯:喜讯+1!袋鼠云数栈技术团队获“2022年度优秀开源技术团队”
投影仪的工作原理是什么?投影仪排名前十的品牌
Centos安装Nginx
针孔无线摄像机怎么连接?针孔无线摄像机怎么用?
本地连接受限制或无连接是怎么回事?本地连接受限制或无连接怎么解决?
svchost.exe占用cpu过是什么原因?svchost.exe占用cpu过高解决方法
pdf文件打开是乱码怎么回事?pdf文件打开是乱码时该怎么办?
男主角是明星的小说有哪些?男主角是明星的小说推荐
科比最后一场比赛是什么时候?科比最后一场比赛是多少分?
鞋子防臭的小妙招有哪些?鞋子防臭喷雾哪个牌子好?
沙棘如何鉴别好坏?沙棘的功效作用与主治是什么?
玉碎了代表什么征兆?玉碎了有什么办法修复吗?
英雄联盟更新慢是什么原因?英雄联盟更新慢怎么办?
怎么才能加快迅雷的下载速度?加快迅雷下载速度的方法有哪些?
全球讯息:阻止Windows未知应用弹窗的一种思路方法
Zabbix6.0使用教程 (四)—zabbix6.0从源代码安装
Tomcat工作原理
小键盘指法是什么意思?小键盘指法包括什么键?
iphone13如何添加公交卡?iphone13添加公交卡的方法有哪些?
安卓系统的手机有哪些?安卓系统的手机有哪些牌子好?
天天快讯:针对某钓鱼网站的渗透测试
【脚本项目源码】Python制作桌面宠物,这么可爱的萌宠你不想拥有吗?
今日热议:4999元 小米13限量定制色明天首销:只有5万台
环球焦点!中国民营火箭朱雀二号发射失利 全球首型轨道飞行的甲烷火箭
当前播报:QQ邮箱推实用新功能:英文文档一键即可翻译
【报资讯】丰田凯美瑞看呆!新一代本田雅阁实车曝光:比思域还运动
撞到快报废!特斯拉高速追尾大货车 司机身亡:现场视频速度快到可怕
单手就能用的折叠屏旗舰!OPPO Find N2今天发布:比直板机还轻
环球视讯!反对无效!日本投放广告宣传福岛核污水安全性:必须排海
【环球播资讯】我国成功发射遥感三十六号卫星!长征火箭年发射数首次迈上50大关
【环球速看料】适合男女双打 这三款游戏拉近你和她的距离
焦点滚动:腾讯互动阅读App《一零零一》宣布将停运:补偿方案出炉
环球新动态:显卡不会便宜了?NV要发新RTX 4080、4090:移动版也万元节奏
世界新消息丨法国2-0摩洛哥 决赛战阿根廷!网友发现规律:姆巴佩进球就不会输
快消息!Vue核心概念与其指令
Wireshark使用笔记
焦点!Zabbix监控系统
世界快资讯丨Kubernetes Volumes 笔记
取代奔腾/赛扬!Intel 12代Alder Lake-N处理器来了:清一色小核、超低功耗
环球即时看!德国樱桃收购瑞典外设品牌Xtrfy:对方只有12人
当前信息:国六B汽油要全面上线了!听说这玩意又贵又不耐烧?
环球关注:Wi-Fi 7:明年下半年见
天天看点:App流畅度提升88%!小米承诺:所有升级MIUI 14机型均支持光子引擎
全球要闻:雷军:全面对标苹果iPhone 一个新的小米开始了
环球滚动:[WPF] MediaElement播放HDR视频泛黄、颜色显示不正确应该如何解决?
R数据分析:冲击流图与热图的做法以及多图布局
简讯:VUE简介
天天微头条丨意外之喜:苹果给iPhone 6s/7推送iOS 15.7.2系统更新
焦点精选!脱口秀演员直播带货:想得美好
直播:今年最后一场大型流星雨来了!双子座流星雨压轴登场
游戏性能被RX7900反超?《巫师3》次世代版4090光追演示
天天信息:摩托罗拉×潘通 “非凡洋红”限定版新机来了
Python3.7.3环境搭建
全球观点:哈希表总结
当前报道:2022 ICPC 杭州站 K - Master of Both // Trie
RTX 4080为何要定价这般高?背后原因揭开
【环球热闻】面对矿卡 老黄已经悄悄带头冲锋了!一箭双雕 真是绝了
环球短讯!旧版微博拜拜:大量用户被直接改为新版界面
全球新动态:工信部出手!手机预装App终于能卸载了:2023年执行