在前面两篇Spring Cloud Config配置中心的博客中都是需要指定配置服务的地址url:spring.cloud.config.uri,客户端都是直接调用配置中心的server端来获取配置文件信息。如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合springcloud服务治理的理念。springcloud提供了这样的解决方案,我们只需要将server端当做一个服务注册到eureka中,client端去eureka中去获取配置中心server端的服务既可。
一、Server端改造
1.添加依赖
在SpringCloudConfigServer项目中,添加spring-cloud-starter-netflix-eureka-client引用。
<dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId> dependency>
View Code
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.1.6.RELEASEversion> <relativePath/> parent> <groupId>com.examplegroupId> <artifactId>SpringCloudConfigServerartifactId> <version>0.0.1-SNAPSHOTversion> <packaging>warpackaging> <name>SpringCloudConfigServername> <description>Demo project for Spring Bootdescription><span><</span><span>properties</span><span>></span> <span><</span><span>java.version</span><span>></span>1.8<span><span>java.version</span><span>></span> <span><</span><span>spring-cloud.version</span><span>></span>Greenwich.SR2<span><span>spring-cloud.version</span><span>></span> <span><span>properties</span><span>></span> <span><</span><span>dependencies</span><span>></span> <span><</span><span>dependency</span><span>></span> <span><</span><span>groupId</span><span>></span>org.springframework.boot<span><span>groupId</span><span>></span> <span><</span><span>artifactId</span><span>></span>spring-boot-starter-web<span><span>artifactId</span><span>></span> <span><span>dependency</span><span>></span> <span><</span><span>dependency</span><span>></span> <span><</span><span>groupId</span><span>></span>org.springframework.cloud<span><span>groupId</span><span>></span> <span><</span><span>artifactId</span><span>></span>spring-cloud-config-server<span><span>artifactId</span><span>></span> <span><span>dependency</span><span>></span>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies><span><</span><span>dependencyManagement</span><span>></span> <span><</span><span>dependencies</span><span>></span> <span><</span><span>dependency</span><span>></span> <span><</span><span>groupId</span><span>></span>org.springframework.cloud<span><span>groupId</span><span>></span> <span><</span><span>artifactId</span><span>></span>spring-cloud-dependencies<span><span>artifactId</span><span>></span> <span><</span><span>version</span><span>></span>${spring-cloud.version}<span><span>version</span><span>></span> <span><</span><span>type</span><span>></span>pom<span><span>type</span><span>></span> <span><</span><span>scope</span><span>></span>import<span><span>scope</span><span>></span> <span><span>dependency</span><span>></span> <span><span>dependencies</span><span>></span> <span><span>dependencyManagement</span><span>></span> <span><</span><span>build</span><span>></span> <span><</span><span>plugins</span><span>></span> <span><</span><span>plugin</span><span>></span> <span><</span><span>groupId</span><span>></span>org.springframework.boot<span><span>groupId</span><span>></span> <span><</span><span>artifactId</span><span>></span>spring-boot-maven-plugin<span><span>artifactId</span><span>></span> <span><span>plugin</span><span>></span> <span><span>plugins</span><span>></span> <span><span>build</span><span>></span>
project>
View Code2.增加了eureka注册中心的配置
在application.properties中增加eureka注册中心的配置,http://localhost:8088是后面启动的eureka server的地址
eureka.client.serviceUrl.defaultZone=http://localhost:8088/eureka/
3.增加注解
在main方法中增加@EnableDiscoveryClient注解
二、客户端改造
1、添加依赖
也是引入spring-cloud-starter-netflix-eureka-client。
<dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId> dependency>xml version="1.0" encoding="UTF-8"-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >?>cs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html > <://localhost:8002/hello](http://localhost:8002/hello),可以读取到配置文件的属性信息 ![微服务SpringCloud之Spring Cloud Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >project lo](http://localhost:8002/hello),可以读取到配置文件的属性信息 ![微服务SpringCloud之Spring Cloud Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >xmlnsst:8002/hello),可以读取到配置文件的属性信息 ![微服务SpringCloud之Spring Cloud Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >="http://maven.apache.org/POM/4.0.0"d Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html > xmlns:xsi//johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >="http://www.w3.org/2001/XMLSchema-instance"0190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html > xsi:schemaLocation8002/hello](http://localhost:8002/hello),可以读取到配置文件的属性信息 ![微服务SpringCloud之Spring Cloud Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"ttps://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >>.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html > <oud之Spring Cloud Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >modelVersion中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >>hngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >4.0.0modelVersion/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >>6/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html > <ud之Spring Cloud Config配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >parentfig配置中心服务化](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >>://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230526/733213-20190825210552981-384559247.png) 参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html > <ouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >groupIdud/2017/05/25/springcloud-config-eureka.html >>ingcloud-config-eureka.html >org.springframework.bootgroupIdww.cnblogs.com/5ishare/p/11409371.html >>share/p/11409371.html > <uknow.com/springcloud/2017/05/25/springcloud-config-eureka.html >artifactId017/05/25/springcloud-config-eureka.html >>loud-config-eureka.html >spring-boot-starter-parentartifactIds.com/5ishare/p/11409371.html >>1409371.html > <://www.cnblogs.com/5ishare/p/11409371.html >versionishare/p/11409371.html >>.html >2.1.6.RELEASEversion> <//www.cnblogs.com/5ishare/p/11409371.html >relativePath/p/11409371.html >/> Author: 社会主义接班人 > parent> <groupId>com.examplegroupId> <artifactId>SpringCloudConfigClientartifactId> <version>0.0.1-SNAPSHOTversion> <packaging>warpackaging> <name>SpringCloudConfigClientname> <description>Demo project for Spring Bootdescription> <properties> <java.version>1.8java.version> <spring-cloud.version>Greenwich.SR2spring-cloud.version> properties> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-configartifactId> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-actuatorartifactId> dependency> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-tomcatartifactId> <scope>providedscope> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-testartifactId> <scope>testscope> dependency> dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-dependenciesartifactId> <version>${spring-cloud.version}version> <type>pomtype> <scope>importscope> dependency> dependencies> dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> plugin> plugins> build> project>
View Code
2.配置文件
在bootstrap.properties中去掉指定配置服务的地址url,增加了最后的三个配置:
spring.cloud.config.name=neo-config spring.cloud.config.profile=dev spring.cloud.config.label= spring.cloud.config.discovery.enabled=true spring.cloud.config.discovery.serviceId=spring-cloud-config-server eureka.client.serviceUrl.defaultZone=http://localhost:8088/eureka/
spring.cloud.config.discovery.enabled :开启Config服务发现支持
spring.cloud.config.discovery.serviceId :指定server端的name,也就是server端spring.application.name的值
eureka.client.serviceUrl.defaultZone :指向注册中心的地址3.启动类增加注解
在main方法中增加注解@EnableDiscoveryClient。
三、测试
1.分别启动eureka server、SpringCloudConfigServer、SpringCloudConfigClient。
2.浏览器输入http://localhost:8088/,可以看到注入到eureka server中的服务。
3.输入http://localhost:8001/neo-config/dev,可以看到配置文件的配置信息。
4.输入http://localhost:8002/hello,可以读取到配置文件的属性信息
参考:http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html
Original: https://www.cnblogs.com/5ishare/p/11409371.html
Author: 社会主义接班人
Title: 微服务SpringCloud之Spring Cloud Config配置中心服务化
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/542046/
转载文章受原作者版权保护。转载请注明原作者出处!