spring cloud各组件用途笔记

Eureka
1.是一个注册中心,有一个注册表,会记录IP和端口
2.服务注册到eureka,默认每30秒发送一次心跳
3.如果eureka没收到心跳,认为服务挂掉
4.每隔30秒client会到server拉取最新注册表
Feign
请求本质:动态代理
1.Feign会根据注解@RequestMapping 动态构造请求地址
2.根据地址发送请求和解析响应
Ribbon
作用:负载均衡
算法:Round Robin轮询算法
简单来说,就是如果订单服务对库存服务发起10次请求,那就先让你请求第1台机器、然后是第2台机器、第3台机器、第4台机器、第5台机器,接着再来—个循环,第1台机器、第2台机器。。。以此类推。
Feign+Ribbon
1.ribbon抓取注册表,记录IP和端口
2.使用轮询算法,选择集群中的某一台机器
3.fegin针对这台机器,构造请求
Hystrix
1.每个Fegin请求服务是一个线程池,多个Fegin接口创建多个线程池
2.如果eureka未收到服务的心跳请求,则认为服务挂了
3.请求挂掉的服务,会直接返回,这个过程,就是所谓的熔断!
4.针对熔断的处理,比如返回统一的错误信息,这个过程,就是所谓的降级。
Zuul
1.路由功能,前端服务统一入口,避免前端请求N个IP