SpringCloud之分布式服务配置中心(Spring Cloud Config)
来源:互联网 发布:mac 网线转接头 驱动 编辑:程序博客网 时间:2024/04/29 00:25
1.介绍:
在现在的分布式系统中,服务器的数量越来越多;服务的配置文件也越来也繁多,为了统一的管理服务配置文件,就需要一个配置中心,这里SpringCloud为我们提供了一个非常好的插件spring cloud config,它既支持保存在本地的服务配置,有支持保存在git上的服务配置文件(本文主要是讲述git支持的配置中心)
2.服务介绍:(括号内为创建的demo服务名)
1).spring cloud config (config-server):配置中心服务端
2).spring cloud config client (config-client):配置中心客户端
3.config-server:服务配置中心
创建spring-boot 项目,服务名称为config-server,修改pom.xml文件
<?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.0</modelVersion> <groupId>com.example</groupId> <artifactId>config-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>config-server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR6</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories></project>
在主类SpringCloudConfig.class添加注解@EnableConfigServer,开启配置中心服务器的功能
@SpringBootApplication@EnableConfigServer@EnableEurekaClient@RestControllerpublic class SpringCloudConfig {public static void main(String[] args) {SpringApplication.run(SpringCloudConfig.class, args);}}
修改application.properties文件
spring.application.name=config-serverserver.port=8780spring.cloud.config.server.git.uri=https://github.com/qichunlei/springCloud#spring.cloud.config.server.git.searchPaths=springCloudspring.cloud.config.label=masterspring.cloud.config.server.git.username=qichunleispring.cloud.config.server.git.password=****注:spring.cloud.config.server.git.uri= git仓库地址
spring.cloud.config.label= git的分支(默认master)
spring.cloud.config.server.git.username=git仓库的用户名
spring.cloud.config.server.git.password=git仓库的密码
本例远程仓库地址https://github.com/qichunlei/springCloud下有配置文件repo.properties
启动服务,访问http://localhost:8780/repo/master,查看返回集
{"name":"repo","profiles":["master"],"label":"master","version":"9891c5c21249f41fac3b68a11deb3d01568c1a8f","state":null,"propertySources":[{"name":"https://github.com/qichunlei/springCloud/repo.properties","source":{"url":"http://localhost:8983/repo/master","springCloud.zuul.port":"8985","springCloud.client.host":"8984","eureka.client.host":"8982","springCloud.client.name":"springCloudCofigClient","eureka.client.name":"eurekaService","demo.server.host":"8081","springCloud.server.host":"8983","hello":"hello.pro","demo.server.name":"demo-2","springCloud.server.name":"springCloudCofig","springCloud.zuul.name":"spring-Zuul"}}]}
表明配置中心服务器创建成功。
4.confit-client:配置中心客户端
创建springboot项目,修改pom.xml文件
<?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.0</modelVersion><groupId>com.example.demo</groupId><artifactId>config-client</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>config-client</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <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></dependencies><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>
修改配置文件bootstrap.properties(注:bootstrap.application配置的是服务端信息,一定要由于application.properties启动,否则会报错)
spring.application.name=repospring.cloud.config.profile=repospring.cloud.config.label=master spring.cloud.config.uri=http://localhost:8780
spring.cloud.config.label=仓库分支
spring.cloud.config.uri=服务端地址
spring.cloud.config.profile=配置文件
修改SpringCloudConfigClient.class,添加方法info,代码如下
@SpringBootApplication@EnableEurekaClient@RestControllerpublic class SpringClodeConfigClient {public static void main(String[] args) {SpringApplication.run(SpringClodeConfigClient.class, args);}@Autowiredvoid setEnviroment(Environment env) { System.err.println("my-config.appName: " + env.getProperty("hello"));}@Value("${hello}")String hello;@RequestMapping(value = "/info")public String hi(){return hello;}}
启动服务,访问http://localhost:8783/info,获得返回值
hello.pro
自此,服务配置中心配置完成。
- SpringCloud之分布式服务配置中心(Spring Cloud Config)
- SpringCloud: 分布式配置中心(Spring Cloud Config)
- SpringCloud: 高可用的分布式配置中心(Spring Cloud Config)
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- SpringCloud 教程 | 第六篇:分布式配置中心(Spring Cloud Config)
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- Spring Cloud微服务(6)之spring cloud config分布式配置中心
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 短实习---Java多线程(基础知识)
- 多线程以及OpenMP编程
- ScrollView嵌套ViewPager,网络获取图片自适应高度
- Ftp常见问题
- dts
- SpringCloud之分布式服务配置中心(Spring Cloud Config)
- 微软例子:NetUserEnum函数提供有关服务器上所有用户帐户的信息。
- mysql 存储过程和函数
- Eshop(3)-dao层整合
- Linux下的五个查找命令:grep、find、locate、whereis、which
- json相关异常
- mybatis在xml文件中处理特殊符号(大于号小于号等的方法)
- maven入门
- SpringMVC开发Restful API 参数收集方式