SpringCloud的五大组件:
参考:
zuul(入欧): 网关(替换产品gateway)
Eureka(伊瑞咔):注册中心
Ribbon(瑞本): 负载均衡
Feign(飞嗯): 负载均衡客户端,内置的Ribbon,是对Ribbon的一种封装解决方案
Hystrix(黑丝催克丝):熔断器
1. 网关:gateway (zuul已经停更)
Gateway是业务网关。
业务网关针对具体的业务需要提供特定的流控策略、缓存策略、鉴权认证策略等等。
业务网关一般部署在流量网关(nginx)之后、业务系统之前,比流量网关更靠近业务系统。
业务网关: 将权限校验的逻辑写在网关的过滤器中,后端服务不需要关注权限校验的代码,所以服务的jar包中也不会引入权限校验的逻辑,不会增加jar包大小;如果想修改权限校验的逻辑,只需要修改网关中的权限校验过滤器即可,而不需要升级所有已存在的微服务
2. 注册中心Eureka
服务注册中心
Eureka的服务端应用,提供服务注册和发现功能
3. 负载均衡Ribbon
用于负载均衡, Eureka或nacos中包含了Ribbon,不单独使用
4. Feign
Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可。
不需要自己构建http请求。不过要注意的是抽象方法的注解,方法签名要和提供服务的方法完全一致。
5. Hystrix熔断器
Hystrix是一个延迟和容错库,用于隔离访问远程服务和第三方库级联故障。防止出现级联失败(雪崩)。
6. nacos
注册中心,配置中心,负载均衡
命名空间,起到一个环境隔离的作用