Zuul 的核心逻辑是由一系列紧密配合工作的 Filter 来实现的,能够在进行 HTTP 请求或响应的时候执行相关操作。
Spring Cloud 微服务(20) --- Zuul(一)
基本概念、配置
Zuul 是由 Netflix 孵化的一个致力于“网关”的解决方案的开源组件。Zuul 在动态路由、监控、弹性、服务治理、安全等方面有着举足轻重的作用。
Zuul 底层为 Servlet,本质组件是一系列 Filter 构成的责任链。
Spring Cloud 微服务(19) --- Actuator(二)
运行时度量
运行时度量端点,包括: /metrics、/trace、/threaddump、/health 等
Spring Cloud 微服务(18) --- Actuator(一)
常见端点、配置明细端点
在 Hystrix Dashboard 中,使用了 /actuator/hystrix.stream,查看正在运行的项目的运行状态。 其中 /actuator
代表 SpringBoot 中的 Actuator 模块。该模版提供了很多生产级别的特性,如:监控、度量应用。Actuator 的特性可以通过众多的 REST 端点,远程 shell、JMX 获得。
Spring Cloud 微服务(17) ---Hystrix(五)
Hystrix 优化
Hystrix Collapser 是 Hystrix 退出的针对多个请求,调用单个后端依赖的一种优化和节约网络开销的方法。在一般情况下,每个请求会开启一个线程,并开启一个对服务调用的网络连接,而 Collapser 可以将多个请求的线程合并起来,只需要一个线程和一个网络开销来调用服务,大大减少了并发和请求执行所需的线程数和网络连接,尤其是在一个时间段内非常多的请求情况下,能极大提高资源利用率。
Spring Cloud 微服务(16) --- Hystrix(四)
Hystrix 优化
Hystrix 的优化可以从线程
、请求缓存
、线程传递与并发
、命令注解
、Collapser 请求合并
等方面入手优化
Spring Cloud 微服务(15) --- Hystrix(三)
Turbine、异常处理
Hystrix Dashboard 需要输入单个服务的 hystrix.stream 监控端点,只能监控单个服务,当需要监控整个系统和集群的时候,这种方式就显得很鸡肋,此时可以使用 Turbine 来做监控。
Turbine 是为了聚合所有相关的 hystrix.stream 流的方案,然后在 hystrix dashboard 中展示。
Spring Cloud 微服务(14) --- Hystrix(二)
Hystrix Dashboard
Hystrix Dashboard 仪表盘,是根据系统一段时间内发生的请求情况来展示的可视化面板,这些信息是每个 HystrixCommand 执行过程中的信息,这些信息是一个指标集合,和具体的系统运行情况。
Spring Cloud 微服务(13) --- Hystrix(一)
Hystrix 介绍、Feign Hystrix 断路器
Hystrix
是一个延迟和容错库,目的在隔离远程系统、服务、第三方库,组织级联故障,在负载的分布式系统中实现恢复能力。
在多系统和微服务的情况下,需要一种机制来处理延迟和故障,并保护整合系统处于可用的稳定状态。Hystrix
就是实现这个功能的一个组件。
Spring Cloud 微服务(12) --- Ribbon(二)
工作原理
Ribbon 核心接口
接口 | 描述 | 默认实现类 |
---|---|---|
IClientConfig | 定义 Ribbon 中管理配置的接口 | DefaultClientConfigImpl |
IRule | 定义 Ribbon 中负载均衡策略的接口 | RoundRobinRule |
IPing | 定义定期 ping 服务检查可用性的接口 | DummyPing |
ServerList | 定义获取服务列表方法的接口 | ConfigurationBasedServerList |
ServerListFilter | 定义特定期望获取服务列表方法的接口 | ZonePreferenceServerListFilter |
ILoadBalanacer | 定义负载均衡选择服务的核心方法的接口 | BaseLoadBalancer |
ServerListUpdater | 为 DynamicServerListLoadBalancer 定义动态更新服务列表的接口 | PollingServerListUpdater |