系列6-springCloud微服务-config配置中心

config配置中心分为服务端和客户端,服务端根据文件存储位置分为三种设置方式:
git\githup
SVN
本地存储
其中git\githup,SVN的设置方式基本一样。此处仅记录git的设置,githup与git的设置完全一样。
1.config Server基于git
步骤1:本文档默认为已经有git服务器并且有创建文档的权限。在(不限于)D盘的根目录下新建一个文件夹:springCloudConfig,在springCloudConfig目录下执行git命令:
git init
步骤2:通过步骤1已经将目录设置为git可提交目录。通过git管理员添加当前项目目录的权限配置,在此目录下创建需要管理的配置文件,application.yml(文件名称不限,但是后缀一定是yml或者是properties)添加如下内容:
spring:
profiles:
active:
- dev
---
spring:
profiles: dev
application:
name: springCloud-dev

---
spring:
profiles: beta
application:
name: springCloud-beta
步骤3:通过git将文件上传至服务器,命令如下或者通过git的可视化工具将文件提交到服务器:
#将更新添加到本地暂存仓库
git add .
#将本地暂存仓库的文件提交到本地库
git commit -m "add application.yml file"
#同步推送到服务器端
git push origin master
步骤4:创建一个【springCloud-config-git】的项目作为config Server的git读取项目。修改pom文件,添加对config Server的依赖引用。
org.springframework.cloud
spring-cloud-config-server
步骤5:修改【springCloud-config-git】配置文件application.yml添加如下内容:
server:
port: 8300
spring:
application:
name: springCloud-config #配置中心的应用名称
cloud:
config:
server:
git:
uri: git@gitServerIP:springCloudConfig.git #远程git的地址
username: yourname #远程git认证的账号
password: yourpass #远程git认证的密码 (此处在我的电脑上已经进行过ssh配置,所有我并未设置)
步骤6:修改【springCloud-config-git】添加启动类,在启动类上添加 @EnableConfigServer注解
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {

public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);

}

}
步骤7:启动配置中心服务端,进行测试:
http://localhost:8300/application-beta.yml
http://localhost:8300/application-dev.yml
此处需要额外记录一下,config读取配置文件时的几种路径格式:
1./{application}/{profile}[/{lable}]
2./{application}-{profile}.yml
3./{lable}/{application}-{profile}.yml
解释下这几个变量:
{application}:是在服务端设置的配置文件的文件名字
{profile}:指的是配置文件中设置的profile的值
{lable}:通常使用git或者是SVN才用到,所以是可选项,指代的是git中的分支名字
2.config Server基于本地文件
步骤1:新建【springCloud-config-native】项目,修改pom文件,添加如下依赖。
org.springframework.cloud
spring-cloud-config-server
步骤2:修改【springCloud-config-native】,在src/main/resources路径下新建config文件夹,新建配置文件idaaCloud.yml添加如下内容:
spring:
profiles:
active:
- dev
---
spring:
profiles: dev
application:
name: springCloud-dev

---
spring:
profiles: beta
application:
name: springCloud-beta
步骤3:修改【springCloud-config-native】中的application.yml,
server:
port: 8888
spring:
application:
name: springCloud-config
profiles:
active:
- native
此处未添加检索路径,是因为我们的配置文件路径正好在src/main/resources下,并且正好名字叫config,在config的默认源码中的默认路径包含此路径,如果想要自定义路径则需要添加上如下代码:
cloud:
config:
server:
native:
search-locations: file:./config,classpath:configg
多个路径用“,”分隔,上面有两种设置方式,一种是file:,一种是classpath:这两种方式都可以实现本地加载配置文件,file是直接通过本地文件系统并相对于本项目的路径加载读取,classpath是直接从项目的src/main/resources下进行加载读取配置文件。此处的 search-locations设置方式目前只能采用逗号分隔的方式设置,从yaml的官网上提供的信息显示是可以通过如下形式进行设置的,但是目前测试并不能搜索到文件。原因待查:
cloud:
config:
server:
native:
search-locations:
- file:./config
- classpath:configg
步骤4:修改【springCloud-config-native】添加启动类
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {

public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);

}

}
步骤5:启动测试:参照git服务的启动测试进行
3.config client调用服务端配置文件。
步骤1:新建【springCloud-configClient-8803】项目,pom文件里添加对config的依赖:
org.springframework.cloud
spring-cloud-starter-config
步骤2:修改【springCloud-configClient-8803】,新建application.yml文件,添加如下内容:
spring:
application:
name: springCloud-configClient-service
步骤3:修改【springCloud-configClient-8803】新建bootstrap.yml文件,添加如下内容:
spring:
cloud:
config:
name: springCloud-configClient #读取配置文件的文件名字
profile: beta #读取配置文件的段
uri: http://localhost:8888/ #配置中心的地址,此处如果是负载均衡,需要用“,”分隔
#username: 如果配置中心设置了安全认证,在此处设置认证账号
#password: 如果配置中心设置了安全认证,在此处设置认证密码
此处需要特别说明一下,bootstrap.yml和application.yml文件在执行上是有优先级的,bootstrap的优先级高于application的优先级,官方的说法是,bootstrap是系统级的设置,application是应用级设置。
步骤4:修改【springCloud-configClient-8803】新建cotroller进行测试。读取配置文件。
@RestController
public class UltraServiceController {
@Value("${spring.application.name}")
private String application_name ;
@RequestMapping("/get")
public Object getSessionId() {
return "获取到的引用名称:"+application_name;
}
}
步骤5:修改【springCloud-configClient-8803】添加启动类
@SpringBootApplication
public class UtralServiceApplication {

public static void main(String[] args) {
SpringApplication.run(UtralServiceApplication.class, args);
}

}
步骤6:启动配置中心,启动客户端,通过客户端进行连接测试:
http://localhost:8805/get
4.config的高可用机制
配置中心的高可用机制是有两种实现方式的:
方式一:基于一些软负载工具建立集群,在客户端直接访问代理服务器从而实现配置中心服务的高可用,此种方式是以配置中心为整个集群的中心构建的

方式二:通过Eureka实现高可用,建立多个配置中心注册到Eureka中,客户端通过服务名称获取配置中心的服务,此种方式是以Eureka为整个集群的中心进行构建的,将这个的配置中心作为一个微服务在注册中心进行注册并管理。搭建方式与其他的微服务搭建方式项目,不在此详述。

你可能感兴趣的:(springCloud学习笔记)