阿里巴巴的独立环境是如何实现的( 二 )


那如果源头不是你的独立环境呢,这时候我们先想下上面的流程中,源头进入了独立环境是怎么保证后续的处理都在你对应机器中呢?类似与traceid,请求的链路中,会携带一个projectName的参数,每次路由服务之时,会根据这个name去匹配你之前申请独立环境时候给你配置的name 。这样就保证了整个请求在你的独立环境之中 。所以,需要你做的就是让程序明白你当前的访问需要去对应的独立环境 。
这里阿里巴巴有一个实现的tips 。在你部署独立环境时候,有一个路由到本独立环境的配置,如果你勾选了,那么会保存你本机(你自己电脑ip)和对应项目名称的映射,然后当请求链路进行过程中,traceid会携带请求的源头ip,如果这个源头ip 和你本机ip一致,那么就会路由到你的隔离环境中 。

阿里巴巴的独立环境是如何实现的

文章插图
 
这个时候,我们再引申一下,如果我想把我独立环境上部署的功能,交给测试测试怎么办呢,他机器的ip和我的肯定是不一样的吧 。这时候我们在去细想上面提到的实现方案,如果我们在最初的请求中,添加对应的请求头如下图中所示 。
 
阿里巴巴的独立环境是如何实现的

文章插图
 
路由中间件会根据如图的key值去在每次路由时候寻找是否有独立的环境存在,有的话就将对应的流量路由过去 。
结语
为了让大家了解独立环境的必要所以在讲述实现方式之前,一步步的延伸了独立环境的必要性 。如果有一天大家有幸感受过一个服务上部署七八个分支的情况,一定会更加理解独立环境的必要 。
注:本文主要讲述独立环境相关,需要自身对traceId实现有大致了解,可以更加容易理解 。
 
原文:https://juejin.im/post/5decbc92e51d45583c1cb408
作者:七岱
来源:微信公众号

【阿里巴巴的独立环境是如何实现的】


推荐阅读