springcloud是一个微服务架构,是每个模块都是独立的。
cloud五大组件
注册中心 nacos :解耦,统一配置yml文件
2.客服端负载均衡:Ribbon
为什么要使用负载均衡策略?
答:服务的提供方可能不仅仅只有一台服务器,而是一个集群,比如上面调用服务时,使用的是instances.get(0);这样就将调用的服务写死了,拿到的永远都是第一个服务,没有实现服务的均衡。
Ribbon可以简化restTemplate的调用
使用:
在创建restTemplate方法时的@Bean上加上@LoadBalanced注解
这样在contorller中代码就可以这样编写了:
3.声明式服务调用:Feign (服务之间远程调用)
4.熔断器:Hystrix
Hystrix也是Netflix公司的
用于隔离访问远程服务、第三方服务时出现级联失败(雪崩)
也就是用户访问服务时,而这个服务也需要访问其它的服务,如果最底层的服务挂了,从而导致整条链路的服务都挂了,这就称为雪崩
5.Gateway 网关
权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。
路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡。
限流:当请求流量过高时,在网关中按照下流的微服务能够接受的速度来放行请求,避免服务压力过大。
什么是负载均衡?
权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。
路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡。
限流:当请求流量过高时,在网关中按照下流的微服务能够接受的速度来放行请求,避免服务压力过大。