Version: Next
配置中心搭建
服务端
步骤
- 在自己的 Github / Gitee 上创建一个名为
springcloud-config
的新 Repository 仓库- 获取这个仓库的 Git 地址
git@gitee.com:ceskykrumlov/springcloud-config.git
- 在本地磁盘上创建 Git 仓库并执行 git clone
- 认证失败的话,要生成非对称 加密公私钥,注意:SpringCloudConfig 连接 Git 不支持 openssh
ssh-keygen -m PEM -t rsa -b 4096 -C "git邮箱地址"- 把
.pub
文件的内容添加到github/gitee
的 SSH 设置公钥里- 终端进入本地
springcloud-config
仓库,用来存储多环境配置文件
- 保存格式必须为
UTF-8
- 上传三个配置文件,文件名要遵守
/{label}/{application}-{profile}.yaml
的格式,/{分支}/{应用}-{环境}.yaml
config-dev.yamlconfig:info: "master branch,springcloud-config/config-dev.yml version=7" config-prod.yamlconfig:info: "master branch,springcloud-config/config-prod.yml version=1" config-test.yamlconfig:info: "master branch,springcloud-config/config-test.yml version=1"- 新建 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: 3344spring:application:name: cloud-config-centercloud:config:server:git:#uri: git@gitee.com:ceskykrumlov/springcloud-config.git # ssh方式,不支持opensshuri: 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: mastereureka: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 仓库上的配置文件了