~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:idea
作者:吴业华
撰写时间:2021年5月28号
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、基础环境SpringBoot+SpringCloud
二、SpringCloud基本组件
- 注册中心:Eureka
- 负载均衡:Ribbon
- 声明式调用远程方法:Feign
- 熔断、降级、监控:Hystrix
- 网关:Zuul
三、ssm-springboot-SpringBoot+SpringCloud集成分布式开发
四、SpringBoot+SpringCloud分布式导图
五、创建工程
spring-clound-parent 父工程
spring-cloud-Eureka Eureka 注册中心 port: 5000
spring-cloud-common 通用工程
spring-cloud-provider 提供者工程 port: 1000
spring-cloud-providers 提供者工程 port: 2000
spring-cloud-consumer 消费者工程 port: 4000
spring-cloud-feign-consumer 远程消费者工程 port: 7000
spring-cloud-dashboard 监控 port: 8000 http://localhost:8000/hystrix 直接监控链接数据本身:http://localhost:1000/actuator/hystrix.stream
六、测试流程
- consumer 访问 provider 时使用微 服务名称代替 localhost:1000
- spring-cloud-consumer添加ribbon负载均衡
- provider、providers 以集群方式启动 port: 1000 port: 2000
- consumer正常访问 注意:provider 的微服务名称必须使用同一个名称才能构成一个集群,否则将不会认定为是属于同一个集群。如果我们把providers停掉,consumer就只会访问provider工程
- Hytrix
- 分布式系统面临的问题
在微服务架构体系下,服务间的调用错综复杂,交织成一张大网。如果其中某个节 点突然无法正常工作,则访问它的众多服务都会被卡住,进而有更多服务被卡住,系统 中的线程、CPU、内存等资源有可能被迅速耗尽,最终整个服务体系崩溃。 我们管这样的现象叫服务雪崩。
- Hytrix 介绍
Hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多 依赖不可避免的会调用失败,比如超时、异常等,Hystrix 能够保证在一个依赖出问题的 情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故 障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应 (FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延, 乃至雪崩。 Hytrix 能够提供服务降级、服务熔断、服务限流、接近实时的监控等方面的功能。
- 服务熔断机制
熔断机制是应对雪崩效应的一种微服务链路保护机制。 当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该 节点微服务的调用,快速响应错误信息。当检测到该节点微服务调用响应正常后恢复调用链 路。在 SpringCloud 框架里熔断机制通过 Hystrix 实现。Hystrix 会监控微服务间调用的状况, 当失败的调用到一定阈值,缺省是 5 秒内 20 次调用失败就会启动熔断机制。
6. spring-cloud-feign-consumer 引入我们的公共工程,http://localhost:7000/feign/consumer/test/fallback?signal=slow-bang 服务降级
spring-cloud-dashboard 监控
启动监控仪表盘http://localhost:8000/hystrix再复制链接数据本身查看 直接监控链接数据本身:http://localhost:1000/actuator/hystrix.stream
本次作品为学习尚硅谷课程尚筹网