那如果源头不是你的独立环境呢,这时候我们先想下上面的流程中,源头进入了独立环境是怎么保证后续的处理都在你对应机器中呢?类似与traceid,请求的链路中,会携带一个projectName的参数,每次路由服务之时,会根据这个name去匹配你之前申请独立环境时候给你配置的name 。这样就保证了整个请求在你的独立环境之中 。所以,需要你做的就是让程序明白你当前的访问需要去对应的独立环境 。
这里阿里巴巴有一个实现的tips 。在你部署独立环境时候,有一个路由到本独立环境的配置,如果你勾选了,那么会保存你本机(你自己电脑ip)和对应项目名称的映射,然后当请求链路进行过程中,traceid会携带请求的源头ip,如果这个源头ip 和你本机ip一致,那么就会路由到你的隔离环境中 。
文章插图
这个时候,我们再引申一下,如果我想把我独立环境上部署的功能,交给测试测试怎么办呢,他机器的ip和我的肯定是不一样的吧 。这时候我们在去细想上面提到的实现方案,如果我们在最初的请求中,添加对应的请求头如下图中所示 。
文章插图
路由中间件会根据如图的key值去在每次路由时候寻找是否有独立的环境存在,有的话就将对应的流量路由过去 。
结语
为了让大家了解独立环境的必要所以在讲述实现方式之前,一步步的延伸了独立环境的必要性 。如果有一天大家有幸感受过一个服务上部署七八个分支的情况,一定会更加理解独立环境的必要 。
注:本文主要讲述独立环境相关,需要自身对traceId实现有大致了解,可以更加容易理解 。
原文:https://juejin.im/post/5decbc92e51d45583c1cb408
作者:七岱
来源:微信公众号
【阿里巴巴的独立环境是如何实现的】
推荐阅读
- 南方新春的三道茶茶俗介绍
- C++list的使用总结及常用list操作
- 梦见一个分手很久的人代表什么 梦见一个分手很久的人是为什么
- 如果地球变得和盾牌座uy一样大是什么事情 盾牌座uy是银河系最大的恒星吗
- 一个10年SEO大佬的35个SEO经验
- 做关键词的前提条件有哪些?你知道吗?
- 庚子年年底还有大事发生易经 今年庚子年的灾难
- 你可能不知道的 CSS 计数器
- 关于口唇茶的美丽传说
- 金瓶梅中的明代市井茶俗浅谈