标签:discovery rop 地址 pid com serve img search string
配置中心的作用就在于可以在项目启动时加载远程或本地的配置文件,将配置文件集中管理
springboot版本:
2.1.6.RELEASE
springcloud版本:
Finchley.RELEASE
<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> <version>2.0.0.RELEASE</version> </dependency>
server.port=8090 spring.application.name=eureka-server eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.service-url.defaultZone=http://localhost:8090/eureka/
接下来只需要在主启动类上加上@EnableEurekaServer注解就万事大吉了
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
server.port=8050 spring.application.name=config-server # 注册到服务注册中心 eureka.client.service-url.defaultZone=http://localhost:8090/eureka/ # github的仓库地址 spring.cloud.config.server.git.uri=https://github.com/kurean/springconfig.git # github的文件路径 spring.cloud.config.server.git.searchPaths=repo # github的分支,默认是master spring.cloud.config.label=master
最后只要在主启动类上添加@EnableConfigServer和@EnableEurekaClient后就可以了
说明:
1、如果在GitHub上建立的仓库是私有的,那么还要加上spring.cloud.config.server.git.username和spring.cloud.config.server.git.password 这两个配置
2、springcloud config 的URL与配置文件的映射关系如下:
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties
3、如果github上建立的目录下的文件为configtest-dev.properties,那么当启动配置中心服务器端时,可以通过http://localhost:8050/configtest/dev/master访问配置文件,如果访问成功则表示配置中心搭建成功
<dependency>
<groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</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>
创建bootstrap.properties文件,这时项目启动时会通过这个文件从配置中心服务端中设置的配置文件存放地址加载指定的配置文件,因为这个文件是优先于application.properties文件加载的,因此指定注册中心的配置需要放在前者中,否则会造成启动失败
spring.cloud.config.name=configtest spring.cloud.config.profile=dev spring.cloud.config.label=master spring.cloud.config.discovery.enabled=true spring.cloud.config.discovery.serviceId=config-server eureka.client.service-url.defaultZone=http://localhost:8090/eureka/ spring.application.name=config-client server.port=9006
当然,端口号和服务名字可以放在application.properties中
配置说明:
这时就可以创建一个controller来试试效果了
import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ConfigClientController { @Value("${cs.name}") String name; @Value("${cs.age}") String age; @GetMapping(value = "/hi") public String hi(){ return "我的名字是:"+name+",年龄是:"+age; } }
github上的配置文件
configtest-dev.properties
cs.name=kevin
cs.age=18
测试效果
最后,如果遇见Eureka Client启动后就关闭日志打印“ Unregistering application xxx with eureka with status DOWN”,多半是因为本身项目作为web项目启动时没有导入web依赖所致,只要加入就好了
参考文章:https://blog.csdn.net/qazwsxpcm/article/details/88578076
标签:discovery rop 地址 pid com serve img search string
原文地址:https://www.cnblogs.com/nastynail/p/12517247.html