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


    上一篇集群配置文件完善

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

    #---------------------------------------------- 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
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92

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

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

    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服务启动成功 =============================================================");
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    以下是注意事项:

    • 由于当前案例环境,已经配置为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集群模式搭建配置文件的完善相关,希望可以帮助到大家。

  • 相关阅读:
    积分球可以用于什么光谱光学检测
    网络安全(黑客)自学
    OpenCV实战(1)——OpenCV与图像处理基础
    【Python】Python 网络编程 ( Socket 套接字简介 | Socket 套接字使用步骤 | Socket 套接字服务端与客户端开发 )
    java计算机毕业设计springboot+vue城市公园信息管理系统(源码+系统+mysql数据库+Lw文档)
    容器化 | 使用 Alpine 构建 Redis 镜像
    图扑软件 3D 组态编辑器,低代码零代码构建数字孪生工厂
    记一次MySQL5初始化被kill的问题排查
    uniapp中UView中 u-form表单在v-for循环下如何进行表单校验
    华清11.16
  • 原文地址:https://blog.csdn.net/weixin_36775115/article/details/133992715