代码
Eureka server 1
pom.xml
XML
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
application.yml
XML
server:
port: 8761
eureka:
instance:
hostname: 192.168.31.168
# hostname: localhost
client:
register-with-eureka: false
fetch-registry: true
service-url:
defaultZone: http://localhost:8762/eureka/
spring:
application:
name: eureka-server1
EurekaServer1Application
java
@SpringBootApplication
@EnableEurekaServer
public class EurekaServer1Application {
public static void main(String[] args) {
SpringApplication.run(EurekaServer1Application.class, args);
}
}
Eureka server 2
pom.xml
XML
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
application.yml
java
server:
port: 8762
eureka:
instance:
hostname: 192.168.31.168
client:
register-with-eureka: false
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: eureka-server2
cloud:
compatibility-verifier:
enabled: false
EurekaServer2Application
java
@SpringBootApplication
@EnableEurekaServer
public class EurekaServer2Application {
public static void main(String[] args) {
SpringApplication.run(EurekaServer2Application.class, args);
}
}
Eureka client
pom.xml
XML
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
application.yml
XML
spring:
application:
name: eureka-client
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
EurekaClientApplication
XML
@SpringBootApplication
@EnableDiscoveryClient
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
依次运行Eureka server1 , Eureka server2, EurekaClient
你会发现两个server上都有了EurekaClient的注册信息。
Eureka server1
Eureka server2
相关问题与总结
- Eureka server 不能用localhost,否则不会复制注册信息到peer Eureka上。
相关代码PeerAwareInstanceRegistryImpl,ApplicationResource.addInstance(), PeerEurekaNodes.resolvePeerUrls()