文章目录
- 前言
- 一、如何实现?
-
-
- 普通做法
- 本文做法
-
- 二、使用步骤
-
- 1.改造服务A配置
- 2.将线上请求导向本地
- 3. 至此配置完成
-
- 未启用XSwitch之前
- 启用XSwitch之后
- 总结
前言
解决微服务开发中环境debug问题的痛点:
- 每个人起一套环境,用来开发很费劲
- 每个人一套环境,数据不同步,造成开发耗时
- 开发服务依赖公共框架服务,如果想请求调试开发服务的接口,需要经历很多个公共服务接口
- 线上问题,本地复现难度大,可以通过此种方式轻松解决,将线上请求打到本地服务中
一、如何实现?
首先缕清思路,现实环境是什么样子的,然后我们要实现什么?
- 例如我有一个环境,是个微服务的架构项目,已经部署好了,有7-8个微服务
- 现在这个环境有问题了,开始报错,经过排查是其中的一个服务 A 报错,但是报错不明显,排查问题是重点
- 我想要跟踪这个问题,作为程序员最好跟踪问题的方式,当然是debug喽,如何debug?
普通做法
一般来说都是这个环境的数据,所以最简单的就是直接连接这个库,但是 !! 这个服务A 呀,不是直接提供服务,也就意味着你至少要搭建一个环境出来,注册中心,gateway,前端项目,而且一般来说一个请求达到服务A ,需要经历前置的几个服务,几乎就是重建一套环境,从而来查找问题
怎一个烦字了得?
本文做法
通过代理的方式,仅仅需要启动这个一个服务,就可以实现直接debug问题了,如何做呢?
前置条件:一个有小问题的完整环境
- 注册中心
- 各个微服务
- 统一路由 gateway
- 前端项目
- 其中一个有问题的服务A