spring|5年华为架构师1小时把SpringBoot项目并发提升了10倍,网友:牛掰
















今日分享开始啦 , 请大家多多指教~
场景:一次迭代在灰度环境发版时 , 测试反馈说我开发的那个功能 , 查询接口有部分字段数据是空的 , 后续排查日志 , 发现日志如下:
feign.RetryableException: cannot retry due to redirection in streaming mode executing POST
下面是业务、环境和分析过程下面是业务、环境和分析过程:
接口的业务场景 :我这个接口类似是那种报表统计的接口 , 它会请求多个微服务 , 把请求到的数据 , 统一返回给前端 , 相当于设计模式中的门面模式了 。
后续由于这个接口 是串行请求其他微服务的 , 速度有些慢 , 后面修改代码从串行请求 , 改成并行(多线程)获取数据 。
运维那边是通过判断http请求中cookie 或者 header中的某个数据 , 来区分请求是否要把流量打到灰度 。
分析得出:应该是接口异步请求的时候cookie丢失 , 没走到灰度环境 , 找不到 这次迭代新开发的接口 , 导致的重定向到错误页面了 。
验证:由于我代码是通过@Async异步注解 , 实现并行请求的 , 临时把五个接口的异步注解注释掉了 , 灰度在发版验证 , 数据能返回正常 , 说明流量打到灰度了 。
说明问题就是并发请求的时候 , 子线程获取不到主线程的request 头信息 , 导致没有走到灰度 。
下图就是灰度环境的流程图:
- 苹果|华为新一代“小方表”来了:Watch FIT 2正式官宣
- iPhone|Plus时隔5年回归!曝苹果全新6.7寸手机名为iPhone 14 Plus
- 早报:华为P50 Pocket新色预售 百度世界大会定档
- ZOL科技早餐:华为千元手表官宣,腾讯QQ回应大规模盗号
- 华为|意识到离不开中国了?外媒称华为、中兴或将重新打入美国市场
- 华为鸿蒙系统|鸿蒙3.0即将推送,Mate 50首发
- ios16|一步到位能用5年,目前这3款手机能闭眼入,买手机不要太小气
- 华为|重磅级新品官宣:华为全屋智能2.0将于7月4日发布 前代39999元起
- 口红|下周发布!华为P50 Pocket新版开启预订:送1699元口红耳机
- 华为|华为新款86英寸电视曝光:京东方代工 120Hz高刷4K屏
