前端需要了解的泳道概念(1)

一个环境内会有一条骨干链路(该环境的默认链路)和多条泳道。如图所示,泳道隔离出了一条调用边界:处于[泳道-1]内的服务B要调用服务C,若在[泳道-1]内部署了C服务,则B只能调用泳道内的C服务,而不能调用骨干链路或其他泳道的C服务;若在[泳道-1]内没有部署C服务,则流量会调回骨干链路。

优势:

  1. 并行测试。(因此可以根据测试需要,部署不同分支的服务分组,多个泳道并行,多个服务/多个版本可同时提测)

  2. 提供稳定的骨干链路。(保证整个测试流程始终能正常运行)

  3. 错误隔离。(泳道内的服务发生异常 不会影响其他泳道)

泳道的特性


泳道相当于提供了多条“请求的跑道”,理解泳道主要在于理解“流量跑到哪去了”:

泳道内如果没有部署被调用服务,流量会fallback到骨干

– 比如上图[泳道-2]中的B服务节点 调用了 [骨干链路]中的C服务节点

泳道内若存在被调用节点,那么流量是一定不会fallback的 (包括不可用的和禁用的)

– 比如上图[泳道-2]中的A服务节点 只会调用 [泳道-2]中的B服务节点,即使[泳道-2]中的B不可用,也是不会fallback的

骨干环境是一定不会调用到泳道内的

– 比如上图中绝逼不会有 从[骨干链路]到[泳道-2]的调用

泳道之间是一定不会互相调用的

– 比如上图中绝逼不会有 [泳道-1]与[泳道-2]之间的调用

泳道的实现


泳道实现的重点在于服务的注册、发现和服务导流。

后端服务的注册和发现的流程如下:

  1. 服务B启动,上报ip、port、appkey、swimlane等信息

  2. 骨干链路上的服务A节点要调用B,先去取B的服务列表,并进行过滤:A不带有泳道标识,所以只会调用不带泳道标识的B服务节点

  3. 泳道1上的服务A节点要调用B,也会先去取B的服务列表,并进行过滤:A带有泳道=泳道1 标识,所以只会调用同样带有泳道=泳道1 标识的B服务节点

服务导流

  • 通过域名划分泳道:为各个泳道申请单独的域名,根据域名进行分流

  • 通过header携带泳道信息:请求的header字段增加“swimlane=xxxx”,标识请求要打到名为xxxx的泳道里,分流系统会根据该字段做分流。

前端静态资源,基于泳道名进行隔离,在资源编译和打包的时候,指定发布的泳道名,然后资源会上传到该泳道对应的静态服务器中:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

const swimName = process.env.SWIM_ENV;

if (swimName) {

console.log(‘检测到泳道环境SWIM_ENV:’ + swimName);

console.log(‘默认使用test01执行发布’);

}

const webpackConfig = merge(baseWebpackConfig, {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值