[TOC] # loadbalancer-spring-boot-starter loadbalancer-spring-boot-starter 提供了平台通用负载均衡能力,优化restemplate,feign组件。 ## 优化RestTemplateAutoConfigure * 由于RestTemplate默认并发数100(配置默认:org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor),导致服务间调用阻塞,占用大量时间时间 * RestTemplate连接复用 ![](https://img.kancloud.cn/c7/fc/c7fcbd4dbca68fcf882ad8c93c4b995d_2470x1080.png) ## 参考参数优化报告 ![](https://img.kancloud.cn/bf/9a/bf9ace223026fe93a14720729198aa43_1782x1001.png) ## feign优化 * 推荐OKHttp,请求封装的非常简单易用,性能也很ok。 * 开启压缩可以有效节约网络资源,但是会增加CPU压力,建议把最小压缩的文档大小适度调大一点 * 配置最大连接数 ![](https://img.kancloud.cn/52/f6/52f6ddb82f99e17b6367f523548af14c_2503x1188.png) ~~~ ## loadbalancer配置 ## 切换实例的重试 spring.cloud.loadbalancer.retry.enabled=false ##### feign配置 feign.sentinel.enabled=false feign.hystrix.enabled=false feign.okhttp.enabled=true feign.httpclient.enabled=false feign.httpclient.max-connections=1000 feign.httpclient.max-connections-per-route=100 feign.client.config.feignName.connectTimeout=30000 feign.client.config.feignName.readTimeout=30000 feign池化 ## 开启Feign请求响应压缩 feign.compression.request.enabled=true feign.compression.response.enabled=true ## 配置压缩文档类型及最小压缩的文档大小 feign.compression.request.mime-types=text/xml,application/xml,application/json feign.compression.request.min-request-size=2048 ~~~ ## feign拦截器 平台feign 拦截器用于下游服务获取上游服务请求参数 ![FeignHttpInterceptorConfig](https://img.kancloud.cn/8b/4f/8b4ff35a74fe58dcc4c5a28104bfa51a_2270x1088.png) ## feign多版本路由 根据请求头中包含的版本信息,与nacos服务元数据中的版本进行比较,匹配对应的路由进行调用 ![](https://img.kancloud.cn/0a/5d/0a5da00e56bfa5dae96aa676c19ab330_2274x1091.png) ## feigin 日志输出 * 全局配置类 ![](https://img.kancloud.cn/e6/3c/e63c0a81f5d96653aaf50f564b562d7d_2458x1102.png) * 配置文件 ~~~ ##feign参数优化 feign: client: config: default: loggerLevel: full ## 配合logging.level=trace debug用于开发调式日志 logging: level: com.open.capacity: TRACE org.hibernate: INFO org.hibernate.type.descriptor.sql.BasicBinder: TRACE org.hibernate.type.descriptor.sql.BasicExtractor: TRACE ~~~ * 启用日志输出 ![](https://img.kancloud.cn/e0/8c/e08c0527dd1d0a452c58fcebc98d356d_2238x666.png)