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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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

今日分享开始啦 , 请大家多多指教~
场景:一次迭代在灰度环境发版时 , 测试反馈说我开发的那个功能 , 查询接口有部分字段数据是空的 , 后续排查日志 , 发现日志如下:
feign.RetryableException: cannot retry due to redirection in streaming mode executing POST

下面是业务、环境和分析过程下面是业务、环境和分析过程:
接口的业务场景 :我这个接口类似是那种报表统计的接口 , 它会请求多个微服务 , 把请求到的数据 , 统一返回给前端 , 相当于设计模式中的门面模式了 。
后续由于这个接口 是串行请求其他微服务的 , 速度有些慢 , 后面修改代码从串行请求 , 改成并行(多线程)获取数据 。
运维那边是通过判断http请求中cookie 或者 header中的某个数据 , 来区分请求是否要把流量打到灰度 。
分析得出:应该是接口异步请求的时候cookie丢失 , 没走到灰度环境 , 找不到 这次迭代新开发的接口 , 导致的重定向到错误页面了 。
验证:由于我代码是通过@Async异步注解 , 实现并行请求的 , 临时把五个接口的异步注解注释掉了 , 灰度在发版验证 , 数据能返回正常 , 说明流量打到灰度了 。
说明问题就是并发请求的时候 , 子线程获取不到主线程的request 头信息 , 导致没有走到灰度 。
下图就是灰度环境的流程图: