码字不易,转载请注明出处!!
常用链接
Spring 生态官网 链接
Alibaba 版本依赖 链接
Nacos
Nacos中文手册 链接
- Nacos 领域模型
- namespace
- group
- service
- cluster
- instance
- 元数据
- 服务注册
- 服务发现
Ribbon
- 手动实现客户端
RestTemplate
负载均衡 - 通过 Ribbon 实现
RestTemplate
客户端调用负载均衡(@LoadBalanced
)- 设置/重写 Ribbon 暴露的配置接口
- 实现方式
- 配置文件方式(优先级更高,无需重启)
- 代码实现方式(用于细粒度场景、自定义实现)
- 影响范围
- 全局生效
- 指定服务配置(注意父子上下文覆盖问题)
- 修改
IRule
接口默认的ZoneAvoidanceRule
实现- 根据权重均衡
- 优先使用同 cluster 内的 instance
- 匹配元数据相同版本
- 实现方式
- 设置/重写 Ribbon 暴露的配置接口
Feign
- 通过 Feign 实现远程调用
- 实现方式:Contract 契约(
@FeignClient
注解支持SpringMVC
的注解) - 与 Ribbon 配合
- Feign 默认会结合 Ribbon 的实现负载均衡
- 脱离 Ribbon 的方式,直接指定实际 URL 地址
- 实现方式:Contract 契约(
- 修改 Feign 的日志级别(默认不打印任何日志,打印需要在 logging 本身配置是debug 级别下才生效)
- 配置文件方式(优先级更高,无需重启)
- 代码实现方式(用于细粒度场景、自定义实现)
- 修改 Feign 最终使用的 Http 客户端
- 默认情况
- 不和 Ribbon 配合时,使用
HttpUrlConnection
,不支持连接池,性能差 - 和 Ribbon 结合时,支持自定义客户端,默认是
HttpUrlConnection
- 不和 Ribbon 配合时,使用
- 优化
- yml方式配置指定
Apache
的httpclient
,支持连接池,性能提高15%
- yml方式配置指定
- 默认情况
- 继承
- 分析优缺点(个人认为:违背了微服务松耦合的最初目的)
- 此外还支持编码器、解码器、通用逻辑等
本文是对知识点的整理归纳,方便后续翻阅回忆