1.注册中心

Nacos/Eureka

Eureka:

AP  
服务注册中心 2.0后停止开源
短连接,定时发送和服务进行联系
服务异常剔除时间最长可能需要3分钟 30s心跳+90s剔除 +60s下线

Nacos:

CP/AP ephemeral=true
服务注册中心, 配置中心, 健康检查, 负载君合,故障恢复,动态配置
长连接,netty和服务直接连接
心跳5s+15s设置不健康+30s剔除 

2.实现远程调用的方式

Http接口(web接口、RestTemplate+Okhttp)、Feign、RPC调用(Dubbo、Socket编程)、Webservice。

Feign和OpenFeign

Feign:

Feign集成了Ribbon、RestTemplate实现了负载均衡的执行Http调用  停止迭代

OpenFeign:

OpenFeign是springcloud在Feign的基础上支持了SpringMVC的注解,通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务
OpenFeign:
使用ApacheHttpClient
使用OkHttp
代替URLConection
开启g-zip优化

Dubbo和Feign

Dubbo:

RPC: 多协议:dubbo,rmi,http,redis,使用netty,长连接,高并发稳定,方法级服务粒度,可异步调用
随机,权重,最少活跃,一致性hash
容错支持 
failOver 默认 会做负载均衡
failFast 快速失败 不重试
Failsafe 忽略异常,不关心是否调用成功
FailBack 自动记录失败队列,定时重试,适合异步执行
BroadCast 广播
Forking 同时调用多个服务
可以设置retry重试和超时设置

Feign:

Http/REST 实现,Http接口级服务粒度,对外暴漏http接口,短连接,轻量级
默认使用Ribbon负载均衡 随机,规则轮训,空闲策略,响应时间策略
默认使用Hystix做熔断提供服务降级,服务熔断,依赖隔离,监控

3.熔断隔离限流

Hystrix和Sentinel

Hystrix:

熔断和隔离位主的容错机制,快速失败, 提供failback机制
熔断策略:失败比率
隔离策略:并发数
限流:基于qps 

Sentinel:

多样化流量控制,实时监测,系统负载保护,熔断降级| 轻量级,高性能,流量控制,常用的流量整形策略:直接拒绝,慢启动预热模式,匀速器模式:Leaky Bucket 漏桶算法
熔断策略: 响应时间或者失败比率
隔离策略:线程池隔离和信号量隔离

4.负载均衡

Nginx,Ribbon,LoadBalance

Ribbon

客户端负载均衡工具, 提供 均衡算法和服务调用  本地负载均衡 缓存在jvm本地, 实现rpc调用
策略IRule: 轮询RoundRobinRule 随机RandomRule RetryRule轮询重试 ,BestAvailableRule并发最小服务,AvailablilityFiteringRule,过滤故障并发最小,ZoneAvoidanceRule 默认 根据响应时间加权
工作流程:
从注册中心获取服务列表
根据用户指定的策略,找到目标服务提供者
通过Feign或者OpenFeign,Web客户端调用工具完成用户请求 

LoadBalance

Ribbon停更,使用loadBalance 均摊 高可用HA    默认轮询 Hoxton.SR10 增加随机

Nginx

服务端负载均衡工具,客户端请求全部通过nginx转发  
用途:
1.静态http服务器 2.反向代理服务器 3.负载均衡 4.正向代理 5.解决跨域问题 6.限流

负载均衡算法:
轮询(默认),
权重(weight),
ip_hash(根据ip分配方式) 
least_conn(最少连接),
fair(第三方,响应时间方式) 
url_hash(根据url方式)

5.网关

Zuul和Gateway

Zuul:

阻塞api,不支持长连接 底层servlet 处理http请求 同步 没有实现限流和复杂均衡 2.0也使用netty非阻塞

Gateway:

依赖webFlux 底层环境netty 支持异步 实现限流和复杂均衡 反向代理,鉴权,流控,熔断,日志监控,路由转发
三大核心:
Route:由id,uri,predicate组成 
Predicate: 匹配路由
Filter:过滤器