当前位置: 代码迷 >> 综合 >> 【2020-03-08】SpringCloud 基础 Hystrix、Zuul、Config
  详细解决方案

【2020-03-08】SpringCloud 基础 Hystrix、Zuul、Config

热度:24   发布时间:2023-12-22 22:32:51.0

SpringCloud 基础 Hystrix、Zuul、Config

springcloud 基础项目 github https://github.com/ybsdegit/SpringCloud

服务熔断 Hystrix (断路器)服务端

  • 服务雪崩
    对于高流量的应用,单一的后端依赖坑你导致所有服务在几秒内饱和
    我们需要 弃车保帅

  • Hystrix
    避免级联故障,提高分布式系统的弹性
    备选响应

  • 服务熔断
    熔断机制是应对雪崩效应的一种微服务链路保护机制

    当链路某个微服务不可用获取响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息

服务降级 Hystrix (客户端)

  • 服务熔断
    • 服务端
    • 某个服务超时或者异常,引起熔断
  • 服务降级
    • 客户端
    • 从整体网站请求负载考虑 当某个服务熔断或者关闭之后,服务将不被调用
    • 此时客户端可以准备一个 FallbackFactory, 返回一个默认的值(缺省值)
    • 整体服服务水平下降了。好歹能用,比直接挂掉强

@SpringBootApplication
@EnableEurekaClient  // 在服务启动后自动注册到eureka中
@EnableDiscoveryClient  // 服务发现
@EnableCircuitBreaker   // 添加对熔断的支持 断路器
@Beanpublic ServletRegistrationBean hystrixMetricsStreamServlet(){
    ServletRegistrationBean registrationBean = new ServletRegistrationBean(new HystrixMetricsStreamServlet());registrationBean.addUrlMappings("/actuator/hystrix.stream");return registrationBean;}

Zuul 网关

  • 实现外部访问统一入口
  • 过滤
  • Zuul 和 Eureka 整合

zuul 配置

server:port: 9527spring:application:name: springcloud-zuul# Eureka 配置,服务注册地址
eureka:client:service-url:defaultZone: http://localhost:7001/eureka/instance:instance-id: springcloud-zuul-9527 # 修改Eureka上的默认,描述信息prefer-ip-address: true  # true 可以显示ip地址info:app.name: paulson-springcloudcompany.name: ybszuul:routes:mydept.serviceId: springcloud-provider-deptmydept.path: /mydept/**ignored-services: springcloud-provider-dept  # 不能再使用这个路径访问了prefix: /ybs  # 公共的访问前缀
#  ignored-services: *  # 隐藏全部

Spring Cloud Config

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency>
server:port: 3344spring:application:name: springcloud-config-servercloud:config:server:git:uri: https://gitee.com/paulsonwier/springcloud-config.git# 通过config-server可以连接到git访问其中的资源和配置
  相关解决方案