1.Eureka:注册中心
Eureka是Netflix开发的服务发现框架,自己是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载平衡和中间层服务故障转移的目的。
SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
Eureka包含两个组件:Eureka Server和Eureka Client。
Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中举行注册,这样EurekaServer中的服务注册表中将会存储全部可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载平衡器。
在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,假如Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,纵然全部的Eureka Server都挂掉,客户端依然可以利用缓存中的信息斲丧其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、机动性和可伸缩性。
使用教程方法,参考转载内容地点:https://cloud.tencent.com/developer/article/2226635?areaSource=102001.10&traceId=flBkshWMjfTLON-Drf3uW
2.Zuul:服务网关
1、什么是Zuul 服务网关
Zuul 是 Netflix 提供的⼀个开源的 API ⽹关服务器,是客户端和⽹站后端全部请求的中间层,对外开放 ⼀个 API,将全部请求导⼊统⼀的⼊⼝,屏蔽了服务端的详细实现逻辑,Zuul 可以实现反向代理的功 能,在⽹关内部实现动态路由、身份认证、IP 过滤、数据监控等。Zuul也是Spring Cloud集成的组件,通过它来实现服务网关。
2、Zuul的功能列表
- 身份认证与安全:辨认每个资源的验证要求,并拒绝那些与要求不符合的请求。
- 检察与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。
- 动态路由:动态的将请求路由到差别的后端集群。
- 压力测试:渐渐增加指向集群的流量,以相识性能。
- 负载分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求。
- 静态相应处理:在边缘位置直接建立部分相应,从而避免其转发到内部集群。
- 多区域弹性:跨越AWS Region举行请求路由,旨在实现ELB(Elastic Load Balancing)使用的多样化,以及让系统的便越更贴近系统的使用者。
3、zuul与spring-cloud-gateway的区别
差别点:
1、gateway吞吐率比zuul高,耗时比zuul少,性能比zuul高倍左右,gateway对比zuul多依靠了spring-webflux,
2、zuul仅支持同步,gateway支持异步。
3、gateway具有更好的扩展性
相同点:
1、底层都是servlet
2、两者均是web网关,处理的是http请求
使用教程参考内容转载地点:https://www.jianshu.com/p/522a38ca2067
3.Ribbon:负载平衡
Spring Cloud Ribbon 是一个基于 Netflix Ribbon 实现的负载平衡框架,它提供了客户端负载平衡、服务发现等功能,可与 Spring Cloud Eureka、Consul 等服务发现组件集成使用。在微服务架构中,使用 Ribbon 可以有用地分配请求负载到多个服务实例中,提高了服务的可用性和可扩展性。本文将详细先容如安在 Spring Cloud 中使用 Ribbon。
Ribbon 的主要特点
在使用 Ribbon 之前,我们必要先相识一下它的主要特点:
1、负载平衡策略:Ribbon 提供了多种负载平衡策略,如轮询、随机、加权轮询等。
2、服务发现:Ribbon 可以与多种服务发现组件集成,如 Spring Cloud Eureka、Consul 等。
3、重试机制:在服务调用失败时,Ribbon 会自动举行重试,提高服务的可用性。
4、自定义配置:Ribbon 允许开发者自定义负载平衡策略、重试机制等参数。
使用教程参考转载地点:
- https://cloud.tencent.com/developer/article/2259696
复制代码 4.Feign:服务调用
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只必要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载平衡的结果。
特点如下:
1、Feign 采用的是基于接口的注解
2、Feign 整合了ribbon,具有负载平衡的能力
3、整合了Hystrix(下一篇讲到),具有熔断的能力
使用教程参考转载地点:
- https://www.jianshu.com/p/61ebd98be3ca
复制代码 5.Hystix:熔断器
1、Hystix是什么
Hystix是分布式系统的一个延迟和容错的开源库,它可以举行熔断、降级、限流、监控,可以避免分布式系统的级联故障和雪崩效应。
2、Hystix的作用
1.服务熔断:熔断是直接调用降级方法。不调用目标方法,无需等待接口调用超时才返回结果。
2.服务降级:降级是调用目标方法,由于目标方法调用超时大概非常,才调用降级方法。
3、Hystix怎样使用
服务降级是在斲丧端和feign一起使用,默认降级的配置不是开启的(feign.hystrix.enabled=false),服务熔断是在服务端使用,对服务端的controller举行熔断,默认熔断的配置是开启的(spring.cloud.circuit.breaker.enabled=true)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |