效果
- 服务中心高可用:其实就是互相注册
- 服务中心的配置文件由配置中心进行管理
- 配置中心注册服务到服务中心
统一服务注册中心
新建项目:enreka-server-center
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
添加注解
@EnableEurekaServer
配置配置中心
application-peer1
spring.application.name=high-eureka-service
server.port=1111
eureka.instance.hostname=peer1
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/
application-peer2
spring.application.name=high-eureka-service
server.port=1112
eureka.instance.hostname=peer2
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/
统一的配置中心
新建项目: config-center
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
添加注解
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
配置配置中心
spring.application.name=config-server
server.port=8888
spring.cloud.config.server.git.uri=http://github.com/liuyiyou/config_center_repository.git
##如果配置中心git仓库是多文件夹方式
spring.cloud.config.server.git.searchPaths=config_repo,config_repo/*
spring.cloud.config.label=master
spring.cloud.config.server.git.username=xxxx
spring.cloud.config.server.git.password=xxxx
配置中心完成
配置中心客户端(其他服务)
新建项目: config-client
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
添加注解
@EnableDiscoveryClient
@SpringBootApplication
配置客户端
spring.application.name=config-client
#服务注册中心地址: 这个只能放在项目中,而不是放在git仓库中
eureka.client.service-url.defaultZone=http://peer1:1111/eureka
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
spring.cloud.config.profile=dev
需要说明:其他服务注册服务中心的地址必须放到项目的配置文件夹中,因为启动注册中心后,在启动客户端的时候,默认会通过service-url去找到config-server暴露的服务,通过config-server暴露的服务去git仓库中读取其他的配置信息