搭建分布式配置中心

git仓库

在码云上创建一个repo

仓库地址:http://git.oschina.net/wangxianhong/config-server

包含的文件:

175130_0PZ9_1993676.png

文件内容:

175321_D8b8_1993676.png

文件的命名格式:wangxh-xxx.yml

wangxh:表示一个具体的服务名称,这个名称是通过在配置文件中用:spring.application.name=wangxh 来定义的。

wangxh-dev:存放的是开发时的配置信息

wangxh-prod:存放的是生产时的配置信息

wangxh-test:存放的是测试时的配置信息

搭建配置中心

  • 使用springboot创建一个普通的项目,在pom中添加依赖,以下是pom.xml
  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.  
    <modelVersion>4.0.0</modelVersion>
  5.  
     
  6.  
    <groupId>com.wangxh</groupId>
  7.  
    <artifactId>config-server</artifactId>
  8.  
    <version>0.0.1-SNAPSHOT</version>
  9.  
    <packaging>jar</packaging>
  10.  
     
  11.  
    <name>config-server</name>
  12.  
    <description>分布式配置中心示例</description>
  13.  
     
  14.  
    <parent>
  15.  
    <groupId>org.springframework.boot</groupId>
  16.  
    <artifactId>spring-boot-starter-parent</artifactId>
  17.  
    <version>1.5.6.RELEASE</version>
  18.  
    <relativePath/> <!-- lookup parent from repository -->
  19.  
    </parent>
  20.  
     
  21.  
    <properties>
  22.  
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  23.  
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  24.  
    <java.version>1.8</java.version>
  25.  
    <spring-cloud.version>Dalston.SR3</spring-cloud.version>
  26.  
    </properties>
  27.  
     
  28.  
    <dependencies>
  29.  
    <dependency>
  30.  
    <groupId>org.springframework.cloud</groupId>
  31.  
    <artifactId>spring-cloud-config-server</artifactId>
  32.  
    </dependency>
  33.  
    <dependency>
  34.  
    <groupId>org.springframework.boot</groupId>
  35.  
    <artifactId>spring-boot-starter-web</artifactId>
  36.  
    </dependency>
  37.  
     
  38.  
    </dependencies>
  39.  
     
  40.  
    <dependencyManagement>
  41.  
    <dependencies>
  42.  
    <dependency>
  43.  
    <groupId>org.springframework.cloud</groupId>
  44.  
    <artifactId>spring-cloud-dependencies</artifactId>
  45.  
    <version>${spring-cloud.version}</version>
  46.  
    <type>pom</type>
  47.  
    <scope>import</scope>
  48.  
    </dependency>
  49.  
    </dependencies>
  50.  
    </dependencyManagement>
  51.  
     
  52.  
    <build>
  53.  
    <plugins>
  54.  
    <plugin>
  55.  
    <groupId>org.springframework.boot</groupId>
  56.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  57.  
    </plugin>
  58.  
    </plugins>
  59.  
    </build>
  60.  
     
  61.  
    </project>
  • 在启动类添加注解:@EnableConfigServer
  1.  
    @SpringBootApplication
  2.  
    @EnableConfigServer
  3.  
    public class ConfigServerApplication {
  4.  
     
  5.  
    public static void main(String[] args) {
  6.  
    SpringApplication.run(ConfigServerApplication.class, args);
  7.  
    }
  8.  
    }
  • 配置application.properties
  1.  
    spring.application.name=config-server
  2.  
    server.port=8000
  3.  
     
  4.  
    spring.cloud.config.server.git.uri=http://git.oschina.net/wangxianhong/config-server
  5.  
    #spring.cloud.config.server.git.username=
  6.  
    #spring.cloud.config.server.git.password=

这个文件只是指定了 git的地址,配置中心的名称,端口号。

以上就完成了配置中心的搭建。

验证

  1.  
    wangxh-dev:存放的是开发时的配置信息
  2.  
     
  3.  
    wangxh-prod:存放的是生产时的配置信息
  4.  
     
  5.  
    wangxh-test:存放的是测试时的配置信息

现在通过配置中心来访问git仓库的以上几个文件。

访问 wangxh-dev文件

http://localhost:8000/wangxh/dev

180934_xVr2_1993676.png

访问wangxh-prod文件

http://localhost:8000/wangxh/prod

180912_DLPk_1993676.png

访问wangxh-test文件

http://localhost:8000/wangxh/test

181032_P97i_1993676.png

 

总结

如果应用名称叫 serverA 那么需要在git仓库里添加各种场景的yml文件,而这些yml文件的名称规则就是

serverA-dev.yml

serverA-prod.yml

serverA-test.yml

通过http读取这些配置的规则:

http://配置中心的地址/serverA/dev

http://配置中心的地址/serverA/prod

http://配置中心的地址/serverA/test

 转载于:https://blog.csdn.net/weixin_34138377/article/details/92166656

 

 

 分布式配置中心加密解密:

https://blog.csdn.net/u010277958/article/details/88832229

 

 

 

做功能开关:

 

 

 

 

posted @ 2022-01-08 11:38  萧长风  阅读(69)  评论(0编辑  收藏  举报