spring cloud Eureka集群模式搭建(IDEA中运行)《二》

上一篇集群配置文件完善

上一篇博客,想必大家都学会了Eureka集群模式的搭建和运行,针对上一篇的配置文件进行了优化,在这里分享给大家。上一篇主要有3个配置文件,分别对应3个不同的服务,这种形式配置文件分别写在了不同的文件中,对于配置文件的管理过于臃肿,下面分享一种,一个配置文件就解决的问题:

上代码:

java 复制代码
#---------------------------------------------- eureka 注册中心配置 ----------------------------------------------------
spring:
  application:
    name: eureka-server
  profiles: eureka # 【eureka服务器集群 ------ 节点1】,用于main方法启动的时候,用户需要输入的内容。标识启动的是哪一个eureka服务器;
server:
  port: 1111

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka
  client:
    # false表示不向注册中心注册自己
    register-with-eureka: true
    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: true
    #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
    #      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    service-url:
      defaultZone: http://eureka01:1112/eureka/,http://eureka02:1113/eureka/
  server:
    #清理服务间隔3s,默认60*10000
    eviction-interval-timer-in-ms: 3000
    #关闭自我保护模式
    enable-self-preservation: false
logging:
  file: ${spring.application.name}.log

# 注意下面是三个横杠:在单一文件中,可用连续三个连字号(---)区分多个文件(节省多个yml文件的配置,在一个yml文件中就可配置)。

---
#---------------------------------------------- eureka01 注册中心配置 ----------------------------------------------------
spring:
  application:
    name: eureka-server
  profiles: eureka01 # 【eureka服务器集群 ------ 节点1】,用于main方法启动的时候,用户需要输入的内容。标识启动的是哪一个eureka服务器;
server:
  port: 1112

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka01
  client:
    # false表示不向注册中心注册自己
    register-with-eureka: true
    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: true
    #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
    #      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    service-url:
      defaultZone: http://eureka:1111/eureka/,http://eureka02:1113/eureka/
  server:
    #清理服务间隔3s,默认60*10000
    eviction-interval-timer-in-ms: 3000
    #关闭自我保护模式
    enable-self-preservation: false
logging:
  file: ${spring.application.name}.log

---
#---------------------------------------------- eureka02 注册中心配置 ----------------------------------------------------
spring:
  application:
    name: eureka-server
  profiles: eureka02 # 【eureka服务器集群 ------ 节点1】,用于main方法启动的时候,用户需要输入的内容。标识启动的是哪一个eureka服务器;
server:
  port: 1113

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka02
  client:
    # false表示不向注册中心注册自己
    register-with-eureka: true
    # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: true
    #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
    #      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    service-url:
      defaultZone: http://eureka:1111/eureka/,http://eureka01:1112/eureka/
  server:
    #清理服务间隔3s,默认60*10000
    eviction-interval-timer-in-ms: 3000
    #关闭自我保护模式
    enable-self-preservation: false
logging:
  file: ${spring.application.name}.log

注意上面代码中三个横杠:在单一文件中,可用连续三个连字号(---)区分多个文件(节省多个yml文件的配置,在一个yml文件中就可配置)。

接下来在项目的启动文件中修改成如下代码:

java 复制代码
public class EurekaServerApplication {
    //    public static void main(String[] args) {
//        new SpringApplicationBuilder(EurekaServerApplication.class).web(true).run(args);
//    }
    public static void main(String[] args) {
      
        System.out.println("============================================================= 开始启动eureka服务 =============================================================");
        System.out.println("请在控制台输入您要启动的 eureka 服务器的节点名称 ------ [详细配置请查看application.yml 文件中配置的 spring.profiles 的值]");
        System.err.println("请输入 eureka 或者 eureka01 或者 eureka02");
        Scanner scanner = new Scanner(System.in);
        String profiles = scanner.nextLine();//让用户输入端口号
        new SpringApplicationBuilder(EurekaServerApplication.class).profiles(profiles).run(args);//启动项目

        System.out.println("============================================================= eureka服务启动成功 =============================================================");
    }

}

以下是注意事项:

  • 由于当前案例环境,已经配置为eureka集群环境,既然是集群环境,则erueka服务器需要至少启动2个服务;

  • 在application.yml文件中已经配置了2台eureka服务器的配置,则在启动的时候,需要分别启动这2个eureka服务器;所以,就不能使用普通的 SpringApplication.run(EurekaServer.class,args); 来启动项目了;

  • 请通过下面的形式来指定你需要启动的eureka服务器是哪一个;需要使用SpringApplicationBuilder

    类。该类对SpringApplication进行了封装;

  • 【在控制台输入的时候,请输入你在application.yml中配置的 spring.profiles 的值(yml中配置的值分别是 eureka、eureka01、eureka02),代表着不同的eureka服务器;】

  • 【启动步骤就是,需要运行两次main方法,分别输入 eureka、eureka01、eureka02 即可启动3个eureka服务器】

    以上就是对Eureka集群模式搭建配置文件的完善相关,希望可以帮助到大家。

相关推荐
慧都小项2 小时前
JAVA自动化测试平台Parasoft Jtest 插件Eclipse/IDEA安装教程
java·软件测试·测试工具·eclipse·intellij-idea
精神病不行计算机不上班4 小时前
[Java Web]在IDEA中完整实现Servlet的示例
java·servlet·tomcat·html·intellij-idea·web
轩轩Aminent5 小时前
WSL 中的 Ubuntu 系统中使用 Docker
ubuntu·docker·eureka
计算机毕设指导66 小时前
基于微信小程序的校园食堂点餐系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
Mr.Pascal6 小时前
深度解读一下 springcloud 的 pom.xml 用到的标签
xml·spring boot·spring cloud
Roye_ack6 小时前
【微服务 Day1】SpringCloud实战开发(Mybatis-plus + Docker)
spring cloud·docker·微服务·mybatis
梵得儿SHI7 小时前
SpringCloud 核心组件精讲:OpenFeign 实战指南-服务调用优雅实现方案(含自定义拦截器、超时重试、LoadBalance 整合避坑)
spring boot·spring·spring cloud·负载均衡·openfeign的核心应用·微服务调用·熔断组件
YDS8297 小时前
SpringCloud —— 配置管理
java·spring·spring cloud
计算机学姐8 小时前
基于SSM的社区外来务工人员管理系统【2026最新】
java·vue.js·java-ee·tomcat·maven·intellij-idea·mybatis
斯普信专业组8 小时前
Docker Registry 镜像缓存与客户端无感加速(以 Docker Hub 为例)
缓存·docker·eureka