SpringCloud分布式开发的五个组件的详细信息
3359 blog.csdn.net/weixin _ 40910372/article/details/89466955
服务发现——Netflix Eureka
呼叫端负载平衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——签名云配置
Eureka
用于确定在AWS地区(Region )运行的中间层服务的rest风格的服务。 它由两个组件组成: Eureka服务器和Eureka客户端。 Eureka服务器用作服务注册服务器。 Eureka客户端是一种java客户端,它简化了与服务器的交互,轮询负载均衡器,并支持服务故障切换。 Netflix在生产环境中使用不同的客户端,根据通信量、资源利用率和错误情况提供加权负载平衡。
飘带
Ribbon主要提供客户端的软件负载平衡算法。
功能区客户端组件提供了广泛的配置选项,包括连接超时、重试和重试算法。 功能区具有集成的可拆卸、可定制负载平衡组件。 以下是一些负载平衡策略。
简单轮询负载平衡
加权响应时间的负荷分散
支持区域的轮询负载平衡
随机负载均衡
功能区还包括以下功能:
方便地与Netflix的Eureka等服务发现组件集成
使用Archaius完成运行时配置
使用JMX暴露运输指标,使用Servo发布
可插拔的序列化选项
异步和批处理(即将推出)
自动服务级别协议框架(即将推出)
系统管理/指标控制台(即将推出)
Hystrix
断路器可防止APP应用程序多次尝试执行操作。 这意味着,您可以继续,而不等待故障恢复,或者浪费CPU周期,同时确保故障很可能会失败并且是永久性的。 断路器模式还可以检测APP故障是否已解决。 如果问题似乎得到修复,APP应用程序可以尝试调用操作。
断路器提高了稳定性和灵活性,由一个系统提供稳定性,系统可以从故障中恢复,最大限度地减少故障对性能的影响。 这有助于快速拒绝操作或很可能失败的请求,而不是等待(或不返回)操作超时的请求,以保持系统响应时间。 对于增加断路器每次改变状态的时间的事件,该信息可用于监视用断路器保护系统的部件的健康状况,并警告管理员断路器跳闸而进入打开状态。
流程图
Zuul
与nginx、反向代理类似的功能,但netflix本身添加了与其他组件协作的功能。
spring云配置
这还是静态的,要结合Spring Cloud Bus实现动态的配置更新。
参考
thenetflixstackusingspringboot-part 1: eureka
Netflix开源他们的另一个体系结构——Eureka
Eureka应用程序客户端示例执行
Eureka service客户端注册和运行示例
在Linux上部署Eureka服务器
Spring Cloud源代码分析:注释加载eureka客户端
Spring-cloud Netflix源代码分析:从eureka客户端到服务器的调用过程
Spring-cloud Netflix源代码分析: eureka客户端注册流程
Spring-cloud Netflix源代码分析: Eureka服务注册发现接口
Netflix宣布了云中间层服务的开放源代码项目Ribbon
Ribbon与Eureka的集成
CircuitBreaker
Circuit Breaker Pattern (必读) () ) ) ) ) )。
断路器模式
Netflix Zuul vs Nginx performance