You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot与Spring Cloud微服务多实例创建及Eureka相关问题咨询

微服务相关问题解答

1. 如何创建特定微服务的多个实例?

核心是保证每个实例的端口唯一,常见实现方式:

  • 命令行指定端口启动:运行jar包时通过参数指定不同端口,示例:
    java -jar your-service.jar --server.port=8081
    java -jar your-service.jar --server.port=8082
    
  • 多环境配置文件:创建多个环境配置文件(如application-8081.yml、application-8082.yml),分别设置不同端口,启动时指定激活环境:
    # application-8081.yml
    server:
      port: 8081
    
    启动命令:java -jar your-service.jar --spring.profiles.active=8081
  • IDE多实例启动:以IDEA为例,复制现有微服务的启动配置,在Program arguments中添加--server.port=8082,重复操作启动多个实例即可。

2. 基于Eureka Server的服务注册中心如何实现微服务多实例的负载分发?

Eureka结合客户端负载均衡组件(默认是Ribbon)完成负载分发,流程如下:

  1. 实例注册与心跳维护:微服务实例启动时向Eureka Server注册自身信息,后续每30秒发送一次心跳维持注册状态,Eureka Server实时更新注册表。
  2. 客户端拉取注册表:服务消费者启动时从Eureka Server拉取完整实例列表,每30秒刷新一次本地缓存。
  3. 负载策略执行:消费者调用服务时,Ribbon从本地缓存的实例列表中按预设策略选择实例:
    • 默认策略:轮询(RoundRobinRule),依次调用每个实例
    • 可选策略:随机(RandomRule)、响应时间权重(WeightedResponseTimeRule)、重试(RetryRule)等,可通过配置自定义。

3. 停止服务后Eureka仍显示服务运行的问题排查

核心原因

问题源于Eureka的自我保护机制和默认的心跳、清理配置:

  • 自我保护模式:当Eureka Server15分钟内收到的心跳失败率超过85%时,会触发自我保护,此时不会剔除任何过期实例,避免网络波动误删正常服务。
  • 默认时间配置:微服务默认30秒发一次心跳,Eureka Server默认90秒未收到心跳才标记实例过期,且每60秒才执行一次过期实例清理。

解决方案(开发环境适用,生产环境需谨慎调整)

Eureka Server配置修改

server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
  server:
    # 关闭自我保护模式(开发环境建议开启,生产不建议)
    enable-self-preservation: false
    # 缩短过期实例清理间隔(默认60000ms,改为5000ms)
    eviction-interval-timer-in-ms: 5000

Eureka客户端配置修改

eureka:
  instance:
    prefer-ip-address: true
    # 缩短心跳发送间隔(默认30s,改为5s)
    lease-renewal-interval-in-seconds: 5
    # 缩短心跳过期时间(默认90s,改为10s)
    lease-expiration-duration-in-seconds: 10
  client:
    fetch-registry: true
    register-with-eureka: true
    service-url:
      defaultZone: http://localhost:8761/eureka

调整后,停止服务后Eureka会更快识别实例过期并剔除,同时关闭自我保护避免误保留已停止的服务。

内容的提问来源于stack exchange,提问作者ayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 18:01:23