[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)
- 01.前言
- 02.快速开始
- 01.maven构建项目
- 02.安装mysql数据库
- 03.安装redis缓存中间件
- 04.快速启动框架
- 03.总体流程
- 01.架构设计图
- 02.oauth接口
- 03.功能介绍
- 04.部署细节
- 04.模块详解
- 01.基础介绍
- 02.自定义db-spring-boot-starter
- 03.自定义log-spring-boot-starter
- 04.自定义redis-spring-boot-starter
- 05.自定义base-spring-boot-starter
- 06.自定义common-spring-boot-starter
- 07.自定义loadbalancer-spring-boot-starter
- 08.自定义swagger-spring-boot-starter
- 09.自定义uaa-client-spring-boot-starter
- 10.自定义uaa-server-spring-boot-starter
- 11.自定义oss-spring-boot-starter
- 12.自定义sentinel-spring-boot-starter
- 05.服务详解
- 01.nacos-server
- 02.auth-server
- 03.user-center
- 04.new-api-gateway
- 05.file-center
- 06.log-center
- 07.back-center
- 08.auth-sso模块
- 09.admin-server
- 10.job-center
- 06.系统安全
- 01.非法字符漏洞攻击
- 02.防重放攻击
- 03.代码审计
- 04.Xray扫洞
- 05.混沌工程质量保证
- 07.生产部署K8S
- 01.基本环境安装
- 02.基本组件安装
- 03.集群验证
- 04.安装Metrics Server
- 05.安装容器平台
- 06.Ingress网关
- 07.metalb负载均衡器
- 08.容器平台集群
- 08.K8S资源练习
- 01.Deployment
- 02.StatefulSet
- 03.DaemonSet
- 04.redis集群服务
- 05.elasticsearch集群
- 06.rocketmq部署
- 09.生产容器化部署
- 01.nacos集群部署
- 02.user-center服务
- 03.auth-server服务
- 04.new-api-gateway服务
- 技术交流