网站开发要哪些,音乐设计网站推荐,工信部网站黑名单,有没有免费代理项目一、服务发布简介
分布式系统架构下#xff0c;服务发布是一件很麻烦的事情#xff0c;特别是在构建自动发布流程和灰度测试的策略两个核心方面。通常情况下如果不涉及数据层面的灰度流程#xff0c;服务可以灰度上线#xff0c;或者滚动上线#xff0c;这两种方式很常用…一、服务发布简介
分布式系统架构下服务发布是一件很麻烦的事情特别是在构建自动发布流程和灰度测试的策略两个核心方面。通常情况下如果不涉及数据层面的灰度流程服务可以灰度上线或者滚动上线这两种方式很常用如果涉及到数据灰度则可能需要中间服务做不同版本数据之间追平或者停机维护一次性处理好数据和上线问题不过后面这种方式风险较大。
二、蓝绿部署 新版本上线的时候并不停掉老版本新旧两个版本同时运行通常还会在负载均衡的策略上倾向于旧版本服务处理请求这样新版本就有一个执行的观察期过渡期等到新版本平稳运行一段时间后再把请求都发到新版服务上旧版本服务完成下线。这种方式在分布式架构下很少使用对服务器要求过高。
三、滚动发布 滚动发布可以避免蓝绿部署的服务器资源占用问首先发布一台新版本服务然后停掉一台老版本服务新版服务经过观察之后再逐步替换掉所有老版本的服务这样服务的环境变动比较频繁相对不稳定。
四、灰度发布
上述两种方式在普通业务场景下都还算好操作分布式系统下的灰度发布复杂程序相对高很多基础流程如下 新版本上线可能涉及分布式下多个灰度服务因此在服务在整个链路上分发时都要判断下个请求是路由到正常服务还是灰度服务还要对灰度服务做请求的权重控制不能让灰度服务处理大量的请求。
实际策略在实际的分布式系统灰度发布流程通常会采用如下一个策略
配置一个灰度是否开启的标识配置一批灰度账户通常内部人员配置灰度服务版本标识请求在链路执行时判断灰度是否开启判断当前用户身份是否是灰度测试账号获取当前可以请求的服务列表根据灰度服务版本选择请求的具体服务
这个流程非常的复杂需要很多自定义的策略还要熟悉分布式框架的底层API原理要二次重写来适配灰度策略设计重写原生API还容易触发一些惊喜问题。
五、数据库灰度
如果说最难处理的灰度模式是什么就是数据库的版本灰度问题通常业务对数据库改造升级实际都是通过停机维护来处理的可能很多开发都经历过发布停服公告然后在指定时间内把数据全部追平或者二次搬运再重新提供服务。但是总有些业务场景是不能停机维护的处理灰度数据的基本策略如下 该模式中除了正常的灰度流程之外需要在灰度数据库和正常数据中间提供一个数据调配服务用来解决如下问题灰度数据库缺失数据需要临时从正常库拉取灰度版本失败新数据需要重新整合写入原本正常库灰度版本成功旧版数据迁移等最终保证数据的平稳升级。
最后
现在其实从大厂招聘需求可见在招聘要求上有高并发经验优先包括很多朋友之前都是做传统行业或者外包项目一直在小公司技术搞的比较简单没有怎么搞过分布式系统但是现在互联网公司一般都是做分布式系统。
所以说如果你想进大厂想脱离传统行业这些技术知识都是你必备的下面自己手打了一份Java并发体系思维导图希望对你有所帮助。
资料获取方式戳这里免费下载
这里免费下载](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**