Version: Next

配置中心搭建

服务端

步骤

  1. 在自己的 Github / Gitee 上创建一个名为 springcloud-config 的新 Repository 仓库
  2. 获取这个仓库的 Git 地址 git@gitee.com:ceskykrumlov/springcloud-config.git
  3. 在本地磁盘上创建 Git 仓库并执行 git clone
    1. 认证失败的话,要生成非对称 加密公私钥,注意:SpringCloudConfig 连接 Git 不支持 openssh
      ssh-keygen -m PEM -t rsa -b 4096 -C "git邮箱地址"
    2. .pub 文件的内容添加到 github/gitee 的 SSH 设置公钥里
  4. 终端进入本地 springcloud-config 仓库,用来存储多环境配置文件
    • 保存格式必须为 UTF-8
    • 上传三个配置文件,文件名要遵守 /{label}/{application}-{profile}.yaml 的格式,/{分支}/{应用}-{环境}.yaml
    • config-dev.yaml
      config:
      info: "master branch,springcloud-config/config-dev.yml version=7"
    • config-prod.yaml
      config:
      info: "master branch,springcloud-config/config-prod.yml version=1"
    • config-test.yaml
      config:
      info: "master branch,springcloud-config/config-test.yml version=1"
  5. 新建 Module 模块 cloud-config-center-3344,即 Cloud-Config 的配置中心模块 Cloud Config Server

cloud-config-center-3344

POM

  • 核心依赖 config server
<!--config server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
完整依赖
<dependencies>
<!--config server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!--eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency><!-- 引用自己定义的api通用包,可以使用Payment支付Entity -->
<groupId>org.example</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--监控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

YAML

  • 设置远程 Git 仓库地址,此处注意连接方式
    • git@ 开头表示使用 SSH 方式,需要你在本地和远程 Git 仓库之间配置过 RSA 公私钥,且不能是 openssh
    • https:// 开头表示用 HTTPS 访问,这种方式下需要配置 Github / Gitee 用户名密码
  • 这是远程 Git 仓库 搜索目录
  • 设置要读取的远程 Git 仓库分支
server:
port: 3344
spring:
application:
name: cloud-config-center
cloud:
config:
server:
git:
#uri: git@gitee.com:ceskykrumlov/springcloud-config.git # ssh方式,不支持openssh
uri: https://gitee.com/ceskykrumlov/springcloud-config.git
##搜索目录.这个目录指的是github上的目录
username: xx@xx.com # 你的github / gitee 账户 配合 https,ssh方式不需要
password: ????? # 你的 github/gitee 密码 配合 https,ssh方式不需要
search-paths:
- sprincloud-config
##读取分支
label: master
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/

主启动类

  • 使用 @EnableConfigServer 注解
ConfigCenterMain3344
@SpringBootApplication
@EnableConfigServer
public class ConfigCenterMain3344 {
public static void main(String[] args) {
SpringApplication.run(ConfigCenterMain3344.class, args);
}
}

修改本机 HOST

在本机模拟集群,添加一个IP映射,127.0.0.1 config-3344.com

  • MAC:cd /etc
    • sudo nano hosts
    • 添加 127.0.0.1 config-3344.com ,保存

测试

测试目标:

  • 能否通过 Config Server 配置中心从 远程 Git 仓库 获取配置信息
    • 启动 7001 注册中心
    • 启动配置中心微服务 3344
    • 访问 http://config-3344.com:3344/master/config-dev.yaml

  • 这样就能通过配置中心读取到远程 Git 仓库上的配置文件了