Eureka进群版和单机版的主要差别在于eureka.client.service-url.defaultZone的配置上,集群版需要把其他的eureka服务地址全配置上,并且使用“,”分隔(不包含自身地址),其他的eureka服务亦然。(而且其他的非eureka服务提供者在配置eureka服务地址的时候,也需要配置文件内带上所有的eureka地址,这段则在《搭建SpringCloud服务提供者》详讲)。
一. 配置application.yml文件
- eureka服务:server1
#该配置为eureka集群配置
spring:
application:
name: homepage-eureka
profiles: server1
server:
port: 8000
eureka:
instance:
hostname: server1
prefer-ip-address: false
client:
service-url:
#该地址是“其他”所有参与集群的eureka地址
defaultZone: http://server2:8001/eureka/,http://server3:8002/eureka/
2.eureka服务:server2
#该配置为eureka集群配置
spring:
application:
name: homepage-eureka
profiles: server2
server:
port: 8001
eureka:
instance:
hostname: server2
prefer-ip-address: false
client:
service-url:
#该地址是“其他”所有参与集群的eureka地址
defaultZone: http://server1:8000/eureka/,http://server3:8002/eureka/
- eureka服务:server3
1. eureka服务:server1
```sql
#该配置为eureka集群配置
spring:
application:
name: homepage-eureka
profiles: server3
server:
port: 8002
eureka:
instance:
hostname: server3
prefer-ip-address: false
client:
service-url:
#该地址是“其他”所有参与集群的eureka地址
defaultZone: http://server1:8000/eureka/,http://server2:8001/eureka/
以上就是3个eureka的application.xml的配置,如果需要更多个服务器集群则以此类推即可(要使集群达到效果最好搭建3个或以上)。
二. 服务启动类
服务启动类上面和单机版的启动类一样,没有区别:
package com.lg.psd;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* 1.EnableEurekaServer:让本应用成为一个Eureka服务
* 2.pom 文件中对应到 spring-cloud-starter-netflix-eureka-server
*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
启动服务,访问成功,完成。
附上Gitee的源码: