zoukankan      html  css  js  c++  java
  • SpringCloud-分布式配置中心【入门介绍】

    案例代码:https://github.com/q279583842q/springcloud-e-book

    一、 为什么需要使用配置中心

    1 服务配置的现状

    在这里插入图片描述

    2 常用的配置管理解决方案的缺点

    在这里插入图片描述

    3 为什么要使用 spring cloud config 配置中心?

    在这里插入图片描述

    4 spring cloud config配置中心,它解决了什么问题?

    在这里插入图片描述

    二、 编写配置中心入门案例

    1.编写配置中心的服务端

    1.1 创建服务端项目

      创建一个SpringCloud项目。

    在这里插入图片描述

    1.2 修改pom文件

      我们需要添加config-server的依赖,具体如下

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>1.5.13.RELEASE</version>
    	</parent>
    	<groupId>com.bobo</groupId>
    	<artifactId>config-server</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<dependencyManagement>
    		<dependencies>
    			<dependency>
    				<groupId>org.springframework.cloud</groupId>
    				<artifactId>spring-cloud-dependencies</artifactId>
    				<version>Dalston.SR5</version>
    				<type>pom</type>
    				<scope>import</scope>
    			</dependency>
    		</dependencies>
    	</dependencyManagement>
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-eureka</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-config-server</artifactId>
    		</dependency>
    	</dependencies>
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    </project>
    

    1.3 修改配置文件

      在此处的配置文件中我们需要关联码云或者GitHub。以码云为例

    码云处理

      首先我们需要在码云上注册一个账号(https://gitee.com) 然后创建一个新的项目。

    在这里插入图片描述

    配置文件处理

      在配置文件中添加如下配置

    spring.application.name=config-server
    server.port=9050
    # 设置服务注册中心地址,指向另一个注册中心
    eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/
    
    #Git 配置
    spring.cloud.config.server.git.uri=https://gitee.com/dengpbs/config
    #spring.cloud.config.server.git.username=
    #spring.cloud.config.server.git.password=
    

    创建四个配置文件

    在这里插入图片描述

    四个配置文件都有一个e-book属性,只是值不一样。然后将这个四个配置文件上传到码云中我们新创建的仓库

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    然后将项目中的四个配置文件删除

    在这里插入图片描述

    1.4 修改启动类

      我们需要在启动类中添加eureka客户端和config服务端的注解,具体如下:

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

    1.5 访问测试

      启动服务,访问测试
    http://localhost:9050/config-client/test

    在这里插入图片描述

    http://localhost:9050/config-client/default

    在这里插入图片描述
    http://localhost:9050/config-client/dev

    在这里插入图片描述

    通过访问,我们获取到了位于码云仓库中的属性信息。

    1.6 配置文件的命名规则与访问

      注意,上面案例中的配置文件的名称,并不是随便命名的,而是有一定的规则来约束的,具体如下:

    在这里插入图片描述

    2.编写客户端程序

    2.1 创建项目

      创建一个SpringCloud项目

    在这里插入图片描述

    2.2 pom文件修改

      配置中心的客户端使用的依赖需要注意,不是config-server了,具体如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>1.5.13.RELEASE</version>
    	</parent>
    	<groupId>com.bobo</groupId>
    	<artifactId>config-client</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<dependencyManagement>
    		<dependencies>
    			<dependency>
    				<groupId>org.springframework.cloud</groupId>
    				<artifactId>spring-cloud-dependencies</artifactId>
    				<version>Dalston.SR5</version>
    				<type>pom</type>
    				<scope>import</scope>
    			</dependency>
    		</dependencies>
    	</dependencyManagement>
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-eureka</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-config</artifactId>
    		</dependency>
    	</dependencies>
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    </project>
    

    2.3 修改配置文件

      注意在配置中心的客户端服务中,配置文件的名称必须是bootstrap.properties或者bootstrap.yml文件。
    官方解释:

    Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

    在这里插入图片描述

    spring.application.name=config-client
    server.port=9051
    #设置服务注册中心地址,指向另一个注册中心
    eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/
    
    #默认 false,这里设置 true,表示开启读取配置中心的配置
    spring.cloud.config.discovery.enabled=true
    #对应 eureka 中的配置中心 serviceId,默认是 configserver
    spring.cloud.config.discovery.serviceId=config-server
    #指定环境
    spring.cloud.config.profile=dev
    #git 标签
    spring.cloud.config.label=master
    

    2.4 修改启动类

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

    2.5 创建控制器

      在控制中我们尝试获取配置中心的数据,具体如下:

    @RestController
    public class ShowController {
    	
    	@Value("${e-book}")
    	private String msg;
    	
    	@RequestMapping("/showMsg")
    	public String showMsg(){
    		return msg;
    	}
    }
    

    2.6 启动测试

    访问:http://localhost:9051/showMsg

    在这里插入图片描述

    搞定~

  • 相关阅读:
    H5页面跳到安卓APP和iosAPP
    JS location.href传参及接受参数
    获取当前日期及对应星期
    前端获取当前一周时间 数组形式
    Java基础(四) Object 数组转成 String 数组
    定时任务cron表达式详解
    jquery如何删除数组中的一个元素?
    Mybatis Mapper.xml 需要查询返回List<String>
    oracle的 listagg() WITHIN GROUP () 行转列函数的使用
    如何修改Oracle中表的字段长度?
  • 原文地址:https://www.cnblogs.com/dengpengbo/p/11086720.html
Copyright © 2011-2022 走看看