Eureka高可用环境搭建

1、创建govern-center 子工程

包结构:com.dehigher.govern.center

2、pom文件

(1)父工程pom,用于依赖版本管理

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

(2)子工程pom, 如果没有父工程,可以加版本号直接引入

  <dependencies>
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
      </dependency>
  </dependencies>

3、启动类

 注意添加@EnableEurekaServer 将当前服务标识为Eureka服务

@EnableEurekaServer
@SpringBootApplication
public class GovernCenterApplication {

    public static void main(String[] args){
        SpringApplication.run(GovernCenterApplication.class, args);
    }
}

4、配置文件application.yml

(1)${xxx:aaa} ,通过启动脚本设置系统启动参数xxx,默认值为aaa,实现同一工程启动多个实例

(2)Eureka高可用就是通过eureka服务的相互注册实现的

server:
  port: ${eureka_port:50101}
spring:
  application:
    name: xc-govern-center

#eureka相关配置
eureka:
  client: 
    registerWithEureka: true #是否将自己注册到Eureka服务中
    fetchRegistry: true #服务发现,是否从eureka中获取注册信息
    serviceUrl: #Eureka客户端与eureka服务端的交互地址、多个eureka相互注册实现高可用、高可用状态配置对方地址、单机状态配置自己、不配置默认为默认为本机8761
      defaultZone: ${eureka_host:http://eureka2:50102/eureka/}
  server:
    enable-self-preservation: false #是否开启自我保护
    eviction-interval-timer-in-ms: 60000  #服务注册表清理间隔时间    

5、启动脚本

(1)启动端口为50101的工程, VM arguments 

-Deureka_port=50101 -Deureka_host=http://eureka2:50102/eureka/

(2)启动端口为50102的工程,VM arguments 

-Deureka_port=50102 -Deureka_host=http://eureka1:50101/eureka/

注意细节,配置文件中的serviceUrl.defaultZone 一定要用域名,测试环境可以直接修改host文件

原文地址:https://www.cnblogs.com/dehigher/p/10094162.html