当前位置: 首页 > news >正文

SpringCloud五大核心组件

Consul 等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案。

服务发现——Netflix Eureka

客服端负载均衡——Netflix Ribbon

断路器——Netflix Hystrix

服务网关——Netflix Zuul

分布式配置——Spring Cloud Config

Eureka

一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

Ribbon

Ribbon,主要提供客户侧的软件负载均衡算法。

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:

  • 简单轮询负载均衡
  • 加权响应时间负载均衡
  • 区域感知轮询负载均衡
  • 随机负载均衡

Ribbon中还包括以下功能:

  • 易于与服务发现组件(比如Netflix的Eureka)集成
  • 使用Archaius完成运行时配置
  • 使用JMX暴露运维指标,使用Servo发布
  • 多种可插拔的序列化选择
  • 异步和批处理操作(即将推出)
  • 自动SLA框架(即将推出)
  • 系统管理/指标控制台(即将推出)

Hystrix

断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正​​,应用程序可以尝试调用操作。

断路器增加了稳定性和灵活性,以一个系统,提供稳定性,而系统从故障中恢复,并尽量减少此故障的对性能的影响。它可以帮助快速地拒绝对一个操作,即很可能失败,而不是等待操作超时(或者不返回)的请求,以保持系统的响应时间。如果断路器提高每次改变状态的时间的事件,该信息可以被用来监测由断路器保护系统的部件的健康状况,或以提醒管理员当断路器跳闸,以在打开状态。

流程图

Zuul

类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

Spring Cloud Config

这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

http://www.lryc.cn/news/40665.html

相关文章:

  • Verilog HDL语言入门(二)
  • Simpleperf详细使用
  • 【算法基础】二分图(染色法 匈牙利算法)
  • Caputo 分数阶微分方程-慢扩散方程初边值问题基于L1 逼近的空间二阶方法及其Matlab程序实现
  • I.MX6ULL_Linux_驱动篇(29) GPIO驱动
  • jupyter的安装和使用
  • Springboot新手开发 Cloud篇
  • Linux:函数指针做函数参数
  • Vue3(递归组件) + 原生Table 实现树结构复杂表格
  • ArrayList底层源码解析
  • python:DIY字符画的程序使用说明.doc
  • 【Python/Opencv】图像权重加法函数:cv2.addWeighted()详解
  • 容器的老祖宗LXC和Docker的关系
  • Webpack迁移Rspack速攻实战教程(前瞻版)
  • 一行代码“黑”掉任意网站
  • 51单片机入门 -驱动 8x8 LED 点阵屏
  • Xinlinx zynq7045国产替代 FMQL45T900全国产化 ARM 核心板+扩展板
  • 硬刚ChatGPT!文心一言能否为百度止颓?中国版ChatGPT“狂飙”的机会在哪儿?
  • Python 异步: 在非阻塞子进程中运行命令(19)
  • 蓝桥杯嵌入式第五课--输入捕获
  • Spring事务和事务传播机制
  • 基于OpenCV+CUDA实时视频抠绿、背景合成以及抠绿算法小结
  • MySQL 中的 UNION 语句
  • 高完整性系统工程(三): Logic Intro Formal Specification
  • 【linux】多线程概念详述
  • 【Java】P8 面向对象(3)方法 基本知识
  • js中null和undefined的区别
  • 【Linux】linux中的c++怎么调试?gdb的介绍和使用。
  • 提升Python代码性能的六个技巧
  • VI的常用命令