博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud Config配置中心
阅读量:6796 次
发布时间:2019-06-26

本文共 2745 字,大约阅读时间需要 9 分钟。

配置中心

配置中心的由来

配置中心被用作集中管理不同环境和不同集群配置,以及在修改配置之后能将修改的配置即使的更新到系统。

配置中心具备的功能

  • Open API
  • 业务无关
  • 配置生效监控
  • 一致性K-V存储
  • 统一配置实时推送
  • 配合灰度与更新
  • 配置全局恢复,备份与历史
  • 高可用集群

Config配合git的工作原理

配置的客户端在启动的时候活像配置服务端发请求,服务端在接收到客户端的请求之后会在之前配置好的地址去git残酷拉去一份配置到本地,创建一个临时文件,这个目录就是一个git的本地仓目录,然后服务端读取本地文件返回给客户端。这样做的好处就是,当git服务器故障或者网路出现异常后仍然可以工作。

例子

服务端和客户端公共的依赖如下:

org.springframework.boot
spring-boot-starter-actuator
复制代码

server端的依赖如下:

org.springframework.cloud
spring-cloud-config-server
复制代码

服务端的配置:

spring:  cloud:    config:      server:        git:          uri: https://gitee.com/chendom/SpringCloudConfig.git          username: xx          password: xx          search-paths: config  application:    name: config-serverserver:  port: 8098复制代码

启动类:

@SpringBootApplication@EnableConfigServerpublic class ConfigGitApplication {    public static void main(String[] args) {        SpringApplication.run(ConfigGitApplication.class,args);    }}复制代码

客户端的依赖如下:

org.springframework.cloud
spring-cloud-config-client
复制代码

客户端配置如下:

server:  port: 8099spring:  application:    name: config-client  cloud:    config:      label: master      uri: http://localhost:8098      name: client-config      profile: dev复制代码

测试类的代码

@RestController@RequestMapping("/demo")public class DemoController {@Value("${springcloud.configserver}") private String value;@RequestMapping("/getValue")public String getValue(){    return value;}}复制代码

分别启动服务端和客户端

访问http://localhost:8098/client-config/dev/master

访问http://localhost:8099/demo/getValue

手动刷新

pom依赖:

org.springframework.cloud
spring-cloud-config-client
org.springframework.boot
spring-boot-starter-security
复制代码

bootstrap.yml配置文件

server:  port: 8100spring:  application:    name: refresh-config-client  cloud:    config:      label: master      uri: http://localhost:8098      name: client-config      profile: devmanagement:  endpoints:    web:      exposure:        include: '*'  endpoint:    health:      show-details: always复制代码

请求

@RestController@RequestMapping("/demo")@RefreshScope//刷新注解public class DemoController {@Value("${springcloud.configserver}") private String value;@RequestMapping("/getValue")public String getValue(){    return value;}}复制代码

我们知道之前的配置是这样的 springcloud: configserver: this is test dev

现在该成如下图所示的样子:

此时如果没有刷新还是访问http://localhost:8100/demo/getValue还是不会有变化

此时我们可以访问 Post:

访问

以上就完成了手动刷新的例子,但是微服务一般服务都很多,如果有个别的例子没有进行刷新就很可能出现错误,开锁所以就需要使用到自动刷新

转载于:https://juejin.im/post/5ce4a68ef265da1b833362e0

你可能感兴趣的文章
Spring的理解
查看>>
我的友情链接
查看>>
iCloud1_Getting Started
查看>>
免费香港空间
查看>>
<ubuntu ping响应慢 延迟严重解决方案>
查看>>
mysql 安装
查看>>
java 消息摘要算法 SHA
查看>>
在ubuntu下配置C和C++的编译环境
查看>>
Linux系统开发 4 进程资源 环境 fork()子进程 wait() waitpid()僵尸 孤儿进程
查看>>
(转)delete和析构函数两者之间的联系
查看>>
常见DOS命令总结
查看>>
间隙锁例子
查看>>
大数据Java基础第十天作业
查看>>
c#日期函数
查看>>
安装XEN
查看>>
共享栈
查看>>
服务器时间同步
查看>>
Keepalived + nginx的安装部署
查看>>
SSH反向代理
查看>>
python数据类型-字符串
查看>>