springcloud 入门(7) springcloud config配置中心(上)

简介: springcloud 入门(7) springcloud config配置中心

spring cloud config

项目环境

1、IDE:idea ,maven

2、操作系统:win10

3、jdk:1.8

4、springboot 2.1.6.RELEASE ,springcloud Greenwich.SR1

介绍

Spring Cloud Config 是 Spring Cloud 微服务体系中的中配置中心,是微服务中不可或缺的一部分,其能够很好地将程序中配置日益增多的各种功能的开关、参数的配置、服务器的地址,配置修改后实时生效,灰度发布,分环境、分集群管理配置等进行全面的集中化管理,有利于系统的配置管理和维护。

在互联网时代,应用都是分布式系统,部署在 N 台服务器上,想要去线上一台台地重启机器肯定不靠谱,并且维护成本也很高,所以配置中心应运而生。配置中心被用作集中管理不同环境( Dev 、 Test 、 Stage 、 Prod )和不同集群配置,以及在修改配置后将实时动态推送到应用上进行刷新。

创建git仓库

springcloud config 要配合git使用,所以首先要创建一个git仓库

登录GitHub,右上角有个New repository

1、 新建仓库

image.png

2、输入仓库名

2.png

3、根据GitHub提示提交本地代码

image.png

提示:2021.8.13之后GitHub 的操作都是以token的形式for-git-operations

token的获取在Settings /Developer settings/Personal access tokens/ Generate new token

拉取代码要以token形式https://your_token@github.com/ArronSun/micro-services-config.git


我的配置的GitHub地址是https://github.com/ArronSun/micro-services-config.git,在micro-services-config仓库下提交配置文件,

我的配置文件是放到了config文件夹下

image.png

application-dev.properties

site.sunlong.profile=dev

config server

1、创建springboot 基础项目,cloud-config-server,依赖如下

<dependencies>
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-config-server</artifactId>
      </dependency>
</dependencies>

2、启动类加上EnableConfigServer注解

@EnableConfigServer
@SpringBootApplication
public class CloudConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(CloudConfigServerApplication.class, args);
    }
}

3、配置文件 application.properties

server.port=8101
spring.application.name=cloud-config-server
spring.cloud.config.server.git.uri=https://github.com/ArronSun/micro-services-config.git
spring.cloud.config.server.git.username=ArronSun
#GitHub token
spring.cloud.config.server.git.password=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxx
# 仓库路径下相对搜索位置,可以配置多个
spring.cloud.config.server.git.search-paths=config
# 连接git 超时时间
spring.cloud.config.server.git.timeout=30

启动CloudConfigServerApplication,访问http://localhost:8101/app/dev/master

// 20211203151258
// http://localhost:8101/app/dev/master
{
  "name": "app",
  "profiles": [
    "dev"
  ],
  "label": "master",
  "version": "71c8e92b2e39bb35b5a1d2d21f1187f8c714ca9f",
  "state": null,
  "propertySources": [
    {
      "name": "https://ghp_xxxxxxxxxxxxxxxxxxxxxxx@github.com/ArronSun/micro-services-config.git/config/application-dev.properties",
      "source": {
        "site.sunlong.profile": "dev"
      }
    }
  ]
}

访问成功后,idea控制台会输出以下内容

2021-12-03 15:16:35.023  INFO 48824 --- [nio-8101-exec-7] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/C:/Users/ADMINI~1/AppData/Local/Temp/config-repo-3471101335122200905/config/application-dev.properties

官方给的配置信息和url之间的映射关系:官方地址

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

字段解释:

{application}代表应用名

{profile}对应激活的环境,例如:prod、dev、test等

{label}代表git分支名,如果不写默认是master

如果git的配置文件只有一个,应用名是application,这种情况下URL连接中的应用名只要不为空输入任意字符都能访问到这个唯一的配置文件。这种情况只限于应用名是application切只有一个文件。例如:访问http://localhost:8101/configServer/dev/ 也能成功访问

// 20211203185614
// http://localhost:8101/configServer/dev/
{
  "name": "configServer",
  "profiles": [
    "dev"
  ],
  "label": null,
  "version": "71c8e92b2e39bb35b5a1d2d21f1187f8c714ca9f",
  "state": null,
  "propertySources": [
    {
      "name": "https://ghp_xxxxxxxxx@github.com/ArronSun/micro-services-config.git/config/application-dev.properties",
      "source": {
        "site.sunlong.profile": "dev"
      }
    }
  ]
}

至此springcloud config server简单使用就算完成了

config client

新建一个cloud-config-client用于读取GitHub上配置文件

1、创建一个cloud-config-client springboot项目,依赖如下

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2、配置文件

application.properties

server.port=8201
spring.application.name=cloud-config-client

bootstrap.properties

#bootstrap.properties 会优先于application.properties加载,
# 分支
spring.cloud.config.label=master
# cloud server 地址
spring.cloud.config.uri=http://localhost:8101
# 要请求那个名称的的远程文件,多个用逗号分隔. 和下面的profile连接,就会访问application-dev.properties
spring.cloud.config.name=application
# profile
spring.cloud.config.profile=dev

application.properties:对应的是用户级的资源配置项

bootstrap.properties:对应的是系统级的资源配置,其优先级更高

3、测试使用

新建一个ConfigInfoProperties.java,对应着GitHub的配置文件

@Configuration
@ConfigurationProperties(prefix = "site.sunlong")
public class ConfigInfoProperties {
    private String profile;
    public String getProfile() {
        return profile;
    }
    public void setProfile(String profile) {
        this.profile = profile;
    }
}

新建一个ConfigClientController类用于测试

@RequestMapping("configClient")
@RestController
public class ConfigClientController {
    @Autowired
    private ConfigInfoProperties configInfoProperties;
    @GetMapping("config")
    public String getConfig(){
        return configInfoProperties.getProfile();
    }
}

启动CloudConfigClientApplication,访问http://localhost:8201/configClient/config

image.png

至此,一个简单的sprigcloud config client就完成了。

目录
相关文章
|
3天前
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
29 14
|
2月前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
362 20
|
5月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
5月前
|
Java 开发工具 对象存储
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
93 2
|
4月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
279 0
|
5月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
214 0
Vue3基础(19)___vite.config.js中配置路径别名
|
4月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
200 0
|
4月前
|
负载均衡 Java API
【Spring Cloud生态】Spring Cloud Gateway基本配置
【Spring Cloud生态】Spring Cloud Gateway基本配置
87 0
|
1天前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
23 1
|
5月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba

热门文章

最新文章