初体验
springcloud版本
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
config-server
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
配置
server.port=7001
spring.application.name=config-server
# git仓储地址
spring.cloud.config.server.git.uri=https://gitee.com/jq233/spring-cloud-config
# 配置文件所在的目录
#spring.cloud.config.server.git.search-paths=./
# git提交时需要的的用户名密码
spring.cloud.config.server.git.username=user
spring.cloud.config.server.git.password=123
启动类加注解
@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
config-client
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- 这个包必须要,不然会导致闪退,抛出异常:javax.management.InstanceNotFoundException -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
配置,注意配置文件名称需要改动
# 配置文件名
spring.application.name=app
# profile
spring.cloud.config.profile=default
# 分支
spring.cloud.config.label=master
# 配置中心地址
spring.cloud.config.uri=http://localhost:7001
server.port=7002
git文件
属性覆盖
属性覆盖属于配置中心服务端的功能,他为所有的应用提供了一致的map,可以覆盖配置文件里的内容
# 属性覆盖
spring.cloud.config.server.overrides.from=overridesFrom
安全保护
登录配置中心可以加密码
server
加入pom和配置文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
# 安全保护
spring.security.user.name=user
spring.security.user.password=123
client
这样就可以用账号密码登录配置中心了
# 安全保护
spring.cloud.config.username=user
spring.cloud.config.password=123
对称加密解密
关于网上很多教程都是抄那本书:《SpringCloud微服务实战》,可能由于版本问题,他那种方式配起来不大行。我就照着自己的方式配置,有两点不同:
- 1.8里面自带了不限长度JCE。我没复制到security目录下。
- 控制台不会输出加密解密的端点信息。
我们可以先直接访问配置中心端点:http://localhost:7001/encrypt/status
,他会报错
然后我们在server端增加配置文件,加入配置信息
重启项目,然后再次访问上述的端点
然后我们使用加密端点:http://localhost:7001/encrypt
,我用的postman,记住把安全保护关了,不然总是提示401没有权限。
然后在配置文件中替换
这样当client拿到配置文件的时候,就是经过配置中心进行解密的了。
高可用之服务模式
就是把配置中心当成一个服务注册到Eureka
上面去,你开两个配置中心都注册上去,然后Eureka
自带服务的负载均衡。这样客户端就轮循的访问配置中心了。
服务端导入Eureka client的包然后注册上去。
客户单也是一样不过多样东西:
# 注册到Eureka
eureka.client.service-url.defaultZone=http://192.168.1.4:1111/eureka
# 允许发现配置中心
spring.cloud.config.discovery.enabled=true
# 访问的配置中心的服务名
spring.cloud.config.discovery.service-id=config-server