线下多环境隔离实现简介

背景

线下环境隔离分为两个方面:1.dev和test环境:物理隔离;2.test环境或者dev环境中,基准环境(稳定)或迭代环境(跟着项目走的环境);

1方式采用机器隔离需要机器成本比较大;2是本次文章讨论的场景:采用方式是逻辑隔离,可以节省大量的机器成本,并且不会影响基准环境增加了项目稳定性。

技术方案

采用的方案是标签方案,通过header或者参数中传递特定参数例如env="testProject1"则所有微服务中的consumer端在调用server端时,通过服务注册和发现在进行路由的时候可以根据标签进行定向路由,若下游调用无标签则默认路由到基准环境。本职是一个rpc路由问题。

应用打标签的方式:可以通过jvm启动参数、spring properties、环境变量方式等

对于不同组件的支持:

dubbo实现方案:通过RpcContext中的attachment进行打标,通过注册中心进行定向路由,consumer把对应标识通过attachment进行传递,provider通过attachment接受。具体技术实现基于dubbo的router spi进行扩展实现

http实现方案:由于没有统一的注册中心,则通过header进行打标,servlet中filter统一进行表示的拦截处理和传递。可以通过统一的拦截监控框架jar包引入aop方式实现,或者以jvm提供的java-agent扩展方式,通过premain中进行字节码的拦截处理。现在比较流行的skywalking和byte buddy方式。

用户使用方式:

1.引入对应的dubbo或者http组件或者接入对应agent。

2.进行打标:

spring properties:xxx.env = xx

jvm option: java -jar -xxx.env=xx

系统环境变量:export xxx.env=xx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值