当服务实例很多时,所有的服务实例都要同时从配置中心Config Server读取,这时候考虑在配置中心ConfigServer做一个微服务,并且将其集群化,从而达到高可用:
一,构建Eureka Server(集群,包含多个 config server)
1.新建一个eureka-server工程,eureka-server工程的pom文件继承了主maven的pom文件,eureka-server工程的pom文件引入Eureka Server的起步依赖spring-cloud-starter-eureka-server和web功能的起步依赖spring-boot-starter-web:
<parent>
<groupid>com.chao</groupid>
<artifactid>chapter10</artifactid>
<version>1.0-SHAPSHOT<version>
</parent>
<dependencies>
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-starter-eureka-server</artifactid>
</dependency>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-cloud-starter-web</artifactid>
</dependency>
</dependencies>
2.在工程配置文件application.yml中做程序的相关配置,指定程序的端口号为8761,并不自注册(即将配置register-with-eureka和fetch-registry设置为false)
server:
port:8761
eureka:
client:
register-with-erurka:false
fetch-registry:false
serviceUrl:
defaultZone:http://localhost:${server.port}/eureka/
3.在程序的启动类EurekaServerApplication上加@EnableEurekaServer注解,开启EurekaServer的功能,
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication{
public static void main( String[] args ){
SpringApplication.run( EurekaServerApplication.class, args);
}
}
二.改造Config Server
1.在pom文件中引入起步依赖spring-cloud-starter-eureka-server
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-starter-eureka</artifactid>
</dependency>
2.application.yml加入配置:
eureka:
client:
serviceUrl:
defaultZone:http//localhost:8761/eureka/
3.启动类加注解:
@SpringBootApplication
@EnableConfigServer
@EnableEurekaServer
public class ConfigServerApplication{
public static void main( String[] args ){
SpringApplication.run( ConfigServerApplication, args);
}
}
三.改造Config Client
1.在pom文件中引入起步依赖spring-cloud-starter-eureka-client
2.启动类加注解 @EnableEurekaClient:
3.在application.yml上加上配置,指定的服务注册中心地址:
spring:
application:
name:config-client
cloud:config:
fail-fast:true
discovery:
enabled:true
serviceId:config-server
profiles:
active:dev
server:
port:8762
eureka:client:serviceUrl:
defultZone:http://locaost:8761/ureka(指定服务注册中心)
4.启动(先启动服务端在启动客户端):
依次启动eureka-server,config-server,和config-client工程,注意这里需要config-server启动成功,并且向eurka-server注册完成后,才能启动config-client.
多次启动config-client工程,从控制台可以发现他会轮流从http://locaost:8768和http://locaost:8769 读取配置文件,并且做了负载均衡。