Spring Cloud 组件:
spring 和 Alibaba 组件图:
1.Eureka:
自我保护机制:
Eureka Server:
主控制类 使用 @EnableEurekaServer 注解
Eureka client:
主控制类 使用 @EnableEurekaClient 注解
负载均衡:使用 @LoadBalanced注解 + RestTemplate
Eureka:保证可用性AP。 即在 集群同步数据失败时候,也可以访问,保证了可用。
zookeeper/consul:保证 一致性CP。 在数据同步时候,请求不可用。
2.Ribbon
主启动类使用 @RibbonClient 注解
负载均衡原理:
3.Fegin、openFegin
主启动类 使用 注解 @EnableFeginClients
使用: 消费端使, 1.新建接口,使用 @FeignClient(value="要调用的服务实例--注册中心的地址"), 新建方法 和 被调用方一致即可。
2.然后 注入这个接口类,就可用自己使用了。即实现了远程调用。
可用设置 fegin 的超时时间:
4.Hystrix
主启动类加上:
业务方法加上注解 @HystrixCommand
熔断器如何生效:
熔断器打开之后,恢复:
5.zuul 网关路由:
Zuul包含了对请求的路由和过滤两个最主要的功能:
其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
注意:Zuul服务最终还是会注册进Eureka
提供=代理+路由+过滤三大功能
6.gateway 网关路由:
yml配置:
过滤器: