当前位置: 首页 > wzjs >正文

建网站 做淘宝客宁波论坛网

建网站 做淘宝客,宁波论坛网,网络营销策划方案格式,响应式网站做mip本文主要分享了在SpringCloud微服务体系下,如何将环境(开发、测试、生产)流量路由到开发本机。以解决团队协作下开发资源冲突、浪费问题。 为什么要将环境流量路由到开发本机? 1.开发团队中,开发环境只能同一时间给某个…
本文主要分享了在SpringCloud微服务体系下,如何将环境(开发、测试、生产)流量路由到开发本机。以解决团队协作下开发资源冲突、浪费问题。

为什么要将环境流量路由到开发本机?

1.开发团队中,开发环境只能同一时间给某个开发使用,如果同时使用会存在冲突,可能影响自测的正确性。
2.本来只需要测试一两个微服务的功能,但测试需要启动一条链路的微服务。比如入口网关、用户服务、鉴权服务等。浪费开发本机资源,卡机导致开发效率变慢。可能某些码友的电脑配置根本跑不起所有的微服务😂...

实现路由到开发本机后效果

1.团队开发共用一套开发环境,多人开发下相互不影响,可以按账号路由流量。
2.开发本机调试无需启动关联服务,仅需启动有代码修改的服务即可。
3.测试、线上反馈的bug,可利用本地代码断点的方式快速定位问题。

核心设计思路

1.通过请求头的方式将token、cookie、设备ID(能唯一标识客户端请求)等信息在微服务中传递下去
2.修改注册中心(eureka或nacos)流量路由机制,利用请求头+注册中心metadata来过滤服务列表

代码实现

先来看看SpringCloud默认的负载路由RoundRobinLoadBalancer初始化源码

需要参考此方式在springboot实例化我们自己定义的负载DeveloperLoadbalancer

再看看RoundRobinLoadBalancer的核心逻辑choose()方法

 简单来说:就是从服务列表中选择1个服务来处理请求,而这里就是我们要实现环境流量路由到开发本机的核心修改点

自定义子类DeveloperLoadbalancer继承RoundRobinLoadBalancer,重写choose()方法逻辑

这里贴一下请求头(下图即developerList参数)跟metadata(下图即developer参数)匹配的核心逻辑,详细代码在文末链接

实战demo:以文末项目gateway->web->order顺序访问为例

1.发布到dev环境的服务配置
gateway配置
# 开发者路由配置
developer:
enabled: true # 增加开关,建议只在非prod环境使用
headers: x-token,x-deviceid,x-current-user-id # 使用token、设备ID、用户ID来做路由,各位码友可根据自己的实际定
web配置
# 开发者路由配置
developer:
enabled: true # 增加开关,建议只在非prod环境使用
headers: x-token,x-deviceid,x-current-user-id # 使用token、设备ID、用户ID来做路由,各位码友可根据自己的实际定
order配置
# 开发者路由配置
developer:
enabled: true # 增加开关,建议只在非prod环境使用
headers: x-token,x-deviceid,x-current-user-id # 使用token、设备ID、用户ID来做路由,各位码友可根据自己的实际定
2.本机启动web、order服务
eureka配置(不要提交到代码仓库,每个开发需要调试时才设置)
eureka:
instance:
metadata-map:
developer: 666 # token或Cookie或deviceid,具体看上游服务的developer.headers配置
nacos配置(不要提交到代码仓库,每个开发需要调试时才设置)
spring:
cloud:
nacos:
discovery:
metadata:
developer: 666 # token或Cookie或deviceid,具体看上游服务的developer.headers配置
我的项目中是这样的,要使用时再打开,然后改为开发各自的值

3.服务流量示意图

对于注册中心来说,dev环境服务与开发本机的所有服务会形成1个集群,比如上图web节点有3个,gateway节点只有1个

服务流量路由策略:
1.token=333或token=null的请求进入gateway,会走dev的节点
2.token=666的请求进入gateway,会走开发A本机的web节点,后续走dev的order节点
3.token=888的请求进入gateway,会走dev的web节点,后续走开发B本机的order节点
4.token=999的请求进入gateway,会走开发C本机的web节点,然后继续走开发C本机的order节点
5.若把开发B本机order节点停掉,token=888的请求进入gateway,后续走dev的order节点
至此,我们的方案就落地完成啦!!!团队开发效率又是一个质的飞跃!!![呲牙]
怎么样?如果你觉得有用的话,还不快快一键三连起来!!!
附:涉及的代码目录
github: https://github.com/897665787/springcloud-template
gitee: https://gitee.com/jq_di/springcloud-template
springcloud-template
└──framework
└──developer
└── policy -- 服务路由策略
└── DeveloperLoadbalancer-- 重写轮训负载的choose方法
└──resources
└── bootstrap-eureka.yml-- 本机启动修改metadata-map

文章转载自:

http://ViMtBKVH.jcjgh.cn
http://FKrAmkyo.jcjgh.cn
http://N7G6rPbs.jcjgh.cn
http://jvrIbdCu.jcjgh.cn
http://aprcxlO0.jcjgh.cn
http://G9Uueaju.jcjgh.cn
http://uGxsaM57.jcjgh.cn
http://S2JcG12A.jcjgh.cn
http://r1fBxg64.jcjgh.cn
http://uD0HByO2.jcjgh.cn
http://B1vYRlVv.jcjgh.cn
http://dbqUPsg3.jcjgh.cn
http://yvmJUFzJ.jcjgh.cn
http://xm9MyOMS.jcjgh.cn
http://8y52nzpX.jcjgh.cn
http://XzNReDvj.jcjgh.cn
http://NsyliWV7.jcjgh.cn
http://YmS8Hj84.jcjgh.cn
http://LP7y62jB.jcjgh.cn
http://iOEs1XQn.jcjgh.cn
http://jJFVE7og.jcjgh.cn
http://XvvwHUky.jcjgh.cn
http://TjTTZndl.jcjgh.cn
http://c8zRPKnP.jcjgh.cn
http://SBhqwHKt.jcjgh.cn
http://6YkWhrMI.jcjgh.cn
http://WAR11r2U.jcjgh.cn
http://WuxeByIl.jcjgh.cn
http://cMNnsEtO.jcjgh.cn
http://cNvh5N7i.jcjgh.cn
http://www.dtcms.com/wzjs/703808.html

相关文章:

  • 硬件开发是程序员吗北京seo招聘
  • 网站建设需求有什么用海南网站开发公司
  • 外贸在什么网站做详情页设计费
  • 可以做砍价链接的网站新开传奇网站发布网中变
  • e语言可以做网站吗wordpress 是什麽
  • 网站资源库建设报价公司做企业网站
  • 做公司网站需要什么手续塔城市建设局网站
  • 大朗网站建设公司鲜花网站设计
  • 西安seo优化淘宝客seo推广教程
  • 手机验证登录网站开发西昌网站建设
  • 如何给一个网站做压测网站打开速度慢跟什么有关系
  • 如何编写网站seo中国是什么
  • 闽清网站建设没有网站可以做百度推广吗
  • 网站有关于我们的好处哈尔滨网站建设价格低
  • 网站建设费用标准免费外链平台
  • 网站建设推广安徽怎么做网站开发的方案
  • 软件园专业做网站莱芜找工作 招聘附近
  • 如何用wordpress仿站大兴做网站公司
  • 赣州做网站公司网站建站网站域名申请
  • 企业网站建设资金预算表《建设监理》网站
  • 一般网站隐蔽点么么进公众号开发工具下载
  • 数字货币网站开发展示型网站与营销型网站区别
  • 建设公司网站的要点刚上线的网站
  • 域名 做网站和邮箱上海服装集团网站建设
  • 网站底部横条导航代码代码网站模板
  • seo公司优化方案宁波seo深度优化平台有哪些
  • 免费公司网站源码网站开发 例子
  • 如何提高网站的排名成都网站建设 雷
  • vs2005做网站网站的安全性建设
  • 新浪云服务器做网站徐州网站关键词