info
项目地址: https://github.com/Be5yond/netstub
相关文章:
【netstub】(一)基于nginx反向代理实现客户端mock
【netstub】(二)使用流量桩实现服务端数据回放和mock
【netstub】用户手册
1.应用场景
经常遇到多个需求并行开发的场景,每个需求的改动可能涉及到服务端的一个或多个服务。这时测试团队进行测试的时候,为了避免干扰会采用多个环境进行测试。如下图:
环境 A 测试服务 A 和服务 D
环境 B 来测试服务 B 的改动
环境 C 为稳定分支,供其他下游服务请求调用
1.1 问题
- 造成服务器的浪费,(如上例中,服务C没有任何改动,但是却部署了3份实例)。
- 重新部署,创建测试环境的成本高,需要启该应用上的所有服务。
1.2 解决方案
接入netstub后,因为所有服务流量都经过netstub流量桩,可以利用netstub的星状拓扑
在请求中加入虚拟环境标识,netstub获取到标识后,将请求路由到对应的服务上去。从而实现同一个环境下的多个虚拟环境
1.3 实现效果
实现效果如下图所示,将服务均部署到同一个环境,服务 A, B, D 分别启两个不同版本的实例
只需要部署7个服务就可以完成3个虚拟环境的创建,并且易于拓展,随时可以再启一个新的实例标记为环境 D 接入到系统中。
2. 使用原理
在请求header中增加X-env字段,netstub收到请求后,根据X-Env配置路由到对应的服务ip,没有的话降级为默认服务。
2.1 环境注册与管理
todo