文章目录
Ribbon & Feign
Ribbon
Ribbon 概述
- Ribbon 是客户端负载均衡器
- Ribbon 服务发现
- Ribbon 服务选择规则
- Ribbon 服务监听
Ribbon IRule算法
| IRule算法 | 算法描述 |
|---|---|
| RoundRobinRule | 轮询规则 |
| RandomRule | 随机规则 |
| AvailabilityFilteringRule | 可用过滤规则 |
| WeightedResponseTimeRule | 根据平均响应时间计算 |
| RetryRule | 遵循RoundRobin规则,但会对失败的服务进行重试 |
| BestAvailableRUle | 结合了可用过滤规则和响应时长规则 |
| ZoneAvoidanceRule | 复合判断server所在区域性能和可用性选择服务器 |
Ribbon核心之IPing
- IPing 是Ribbon保证服务可用性的基石
- 常见实现:
NIWSDiscoveryPing,PingUrl - IPing算法:
| IPing算法 | 算法描述 |
|---|---|
| NIWSDiscoveryPing | 不执行Ping操作, 根据Eureka Client 的反馈判断存活 |
| PingUrl | 使用HttpClient对服务进行Ping操作 |
| DummyPing | 默认返回true |
| NoOpPing | 永远返回true |
Ribbon 核心之ServerList
- ServerList是Ribbon存储的可用服务列表
- ServerList 可以手动设置
- ServerList 常见应用是从Eureka中自动获取
Ribbon参数配置
- 默认参数配置:
DefaultClientConfigImpl - Ribbon Key 定义:
CommonClientConfigKey - Ribbon 参数分为全局配置和指定客户端配置
- 参数格式:
<client>.ribbon.<key>=<value>
Feign
Feign是什么
Feign是一个声明式WebService客户端.使用Feign能让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解.Feign也支持可拔插式的编码器和解码器.Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters.Feign可以与Eureka和Ribbon组合使用以支持负载均衡.
Feign Http 性能优化
- Feign 默认使用 JDK 自带的 HTTP 方式, 更换HTTP 底层实现(Apache HttpClient, OkHttp)
- HTTP 数据压缩, Feign 可以支持 GZip 的请求压缩
Feign 简化开发
- Feign 继承
– end –
如有问题,请留言或者发送邮件,感谢您的阅读
欢迎关注博主公众号:
来源:CSDN
作者:大痴小乙
链接:https://blog.csdn.net/fxbin123/article/details/104504467