SpringCloud生产环境组件参考配置

6 篇文章 0 订阅
4 篇文章 0 订阅

gitee

SpringCloud生产环境组件参考配置:具体配置还得具体场景和业务需求

1:Eureka推荐配置

1)Eureka服务端推荐配置

启动类上加上如下注解

/**
 * eureka server
 */
@SpringBootApplication
@EnableEurekaServer

bootstrap.yml配置文件如下 

server:
  port: 8761
spring:
  application:
    name: sc-eurekaserver
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
Eureka配置描述
属性描述
eureka.client.serviceUrl.defaultZone注册中心位置,高可用时需要配置多个地址,可根据启动参数传入
eureka.instance.prefer-ip-address推荐大家都可以用IP来注册
eureka.server.enable-self-perservation默认开启,关闭自我保护,如果规模较大,可以考虑不关闭
eureka.server.eviction-interval-timer-in-ms自动失效检测时间,默认60时,可以设置短一点

2)Eureka客户端配置

启动类上加上如下注解

@SpringBootApplication
@EnableDiscoveryClient
eureka:
  client:
    serviceUrl:
      defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/
  instance:
    prefer-ip-address: true

其他如心跳间隔时间的设置与服务端差别不大,推荐使用官网的方式,保持30s不变

2.Ribbon推荐配置

ribbon:
  ConnectTimeout: 6000 #全局请求连接的超时时间,默认5s
  ReadTimeout: 6000 #全局请求的超时时间,默认5S
  MaxAutoRetries: 0 #对当前实例的重试次数
  MaxAutoRetriesNextServer: 0 #切换下一个实例的重试次数
  okToRetryOnAllOperations:false #对所有的操作都进行重试

3.Hystrix断路器推荐配置

hystrix:
  command:
    default:
      execution:
        timeout:
        isolation:
          thread:
            timeoutInMilliseconds: 15000

全局请求连接的超时时间为1S,通常会调整这个值的大小,推荐设为10S

4.Zuul推荐配置

zuul:
  ribbonIsolationStrategy: THREAD
  threadPool:
    useSeparateThreadPools: true
    threadPoolKeyPrefix: zuulgateway
  max:
    host:
      max-per-route-connections: 200
      max-total-connections: 500
  host:
    socket-timeout-millis: 5000
    connect-timeout-millis: 10000
hystrix:
  threadpool:
    default:
      coreSize: 20
      maximumSize: 50
      maxQueueSize: -1
      allowMaximumSizeToDivergeFromCoreSize: true
  command:
    default:
      execution:
        timeout:
          enabled: false
        isolation:
          thread:
            interruptOnTimeout: false
            timeoutInMilliseconds: 15000

zuul全部配置一般如下配置 

eureka:
  client:
    serviceUrl:
      defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/
  instance:
    prefer-ip-address: true
management:
  security:
    enabled: false
  endpoints:
    web:
      exposure:
        include: hystrix.stream
feign:
  hystrix:
    enabled: true
ribbon:
  ConnectTimeout: 6000
  ReadTimeout: 6000
  MaxAutoRetries: 0 #对第一次请求的服务的重试次数
  MaxAutoRetriesNextServer: 0 #要重试的下一个服务的最大数量(不包括第一个服务)
  OkToRetryOnAllOperations: false
zuul:
  ribbonIsolationStrategy: THREAD
  threadPool:
    useSeparateThreadPools: true
    threadPoolKeyPrefix: zuulgateway
  max:
    host:
      max-per-route-connections: 200
      max-total-connections: 500
  host:
    socket-timeout-millis: 5000
    connect-timeout-millis: 10000
hystrix:
  threadpool:
    default:
      coreSize: 20
      maximumSize: 50
      maxQueueSize: -1
      allowMaximumSizeToDivergeFromCoreSize: true
  command:
    default:
      execution:
        timeout:
          enabled: false
        isolation:
          thread:
            interruptOnTimeout: false
            timeoutInMilliseconds: 15000

Zuul配置描述

Zuul配置描述
属性描述

hystrix.command.default.execution.ioslation

.thread.timeoutInMillseconds

全局请求连接的超时时间,默认为1S,通常会调整这个值的大小,推荐改为10S
hystrix.threadpool.default.coreSize全局默认的核心线程大小,默认为10,一般会调大一点
hystrix.threadpool.default.maximumSize全局默认最大线程池大小,一般也会调大一点

hystrix.threadpool.default.

allowMaximumSizeToDivergeFromCoreSize

该属性配置coreSize和maximumSize生效,默认为false
zuul.ribbonIsolationStrategy: THREAD使用线程池隔离策略,默认Zuul使用信号量
zuul.threadPool.threadPoolKeyPrefix:THREAD使用线程池隔离时每条线程的前缀
zuul.host.maxTotalConnections目标主机可用的最大连接数,默认为20 
zuul.host.maxPreRouteConnections每个路由可用的最大连接数,默认为20

zuul.host.connect-timeout-mills

zuul.host.socket-timeout-mills

如果你不是以服务名来路由而不是使用URL来配置zuul路由,则使用的是这两个超时配置

5.Hystrix推荐配置

eureka:
  client:
    serviceUrl:
      defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8761}/eureka/
  instance:
    prefer-ip-address: true
management:
  security:
    enabled: false
  endpoints:
    web:
      exposure:
        include: hystrix.stream
turbine:
  appConfig: sc-user-service,sc-zuul-service,sc-data-service
  clusterNameExpression: "'default'"

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud 是一个基于 Spring Boot 的开发工具集,用于快速构建分布式系统的微服务架构。它包含了许多组件,其中五个核心组件是: 1. Eureka:服务注册与发现组件,用于实现微服务架构中的服务注册与发现功能。通过 Eureka,服务可以自动注册到注册中心,并且其他服务可以通过注册中心来发现和调用这些服务。 2. Ribbon:负载均衡组件,用于实现客户端的负载均衡。Ribbon 可以根据一定的规则(如轮询、随机等)将客户端请求分发到多个服务提供者实例上,从而实现负载均衡。 3. Feign:声明式的 HTTP 客户端,用于简化服务间的调用。通过定义接口的方式,Feign 可以自动生成具有负载均衡能力的 REST 客户端。开发者只需编写接口,并使用注解来配置请求参数、方法等细节,Feign 就能自动完成 HTTP 请求的发送和响应的处理。 4. Hystrix:容错管理组件,用于实现服务的容错和熔断功能。Hystrix 可以防止由于某个服务故障或网络延迟导致整个系统的故障。它通过隔离服务之间的调用、服务降级、故障熔断等机制来提高系统的弹性和可靠性。 5. Zuul:API 网关组件,用于实现统一的服务路由和过滤功能。Zuul 可以将所有的请求路由到相应的微服务实例上,并可以进行请求过滤、认证、监控等操作,从而提高整个系统的安全性、可用性和可观测性。 这些组件共同构成了 Spring Cloud 的核心,可以帮助开发者更方便地构建和管理分布式系统的微服务架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值