SpringCloud Config服务端的配置|学习笔记

简介: 快速学习 SpringCloud Config 服务端的配置

开发者学堂课程【微服务框架 Spring Cloud 快速入门SpringCloud Config服务端的配置】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/614/detail/9371


SpringCloud Config 服务端的配置

 

此图其中的 ClientA、B 和 C 统一交给它进行管理之后再和Git发生反应,把我们的配置信息由远程的 GitHub 库下载到本地,然后由 Config Server 这个微服务去和外界的 GitHub 沟通。

所以我们的首要任务是将“大管家”Config Server 与 GitHub 这条路给打通。

图片1.png

在之前已经说过 SpringCloud Corifig 分为服务端和客户端两部分。此时的服务端就是 Config Server

用自己的 GitHub 账号在 GitHub 上新建一个名为

microservicecloud-config 的新 Repository

首先找到的 GitHub 新建一个 New repository,

命名为 microservicecloud-config。

同时在 GitHub 上建的项目下载到本地的时候自身都带了一个隐藏变量.git 文件夹。

此时就获得了这个文件库拷贝。

图片1.png

1. 由上一步获得SSH协议的git地址

git@github.com:zzyybs/microservicecloud-config.git

2. 本地硬盘目录上新建git仓库并clone(克隆)

l 本地地址:D:\44\mySpringCloud(依照自己情况更改)

l git命令:

gitclone git@github.com:zzyybs/microservicecloud-config.git

可以理解为这个 44mySpringCloud 路径是一个和开发无关的运维工程师,他可能要处理一个配置类的东西,他就会提交此到GitHub里面,之后大管家就会从上面获取拉取信息。

 图片2.png

首先在此处右键执行 Git 命令,输入 git status 执行,再输入 pwd 可以看到底下显示当前目录下根本没有一个Git库。

所以我们首先输入 git clone 单击我们对应的 Git 相关的下载链接地址回车之后等待克隆。

之后就可以发现目录下显示出了克隆的文件。

我们点击文件夹,首先勾选隐藏的项目,将Git显示出来。我们点进去就可以看见各种本地库和远程库。

在当前目录下面,就检测到是个Git库,当前显示它在master里面,这就全部完成了。

3. D:\44\mySpringCloud\microservicecloud-config里面新建一个application.yml

我们开始模拟运维工程师直接要在刚刚新建的目录下干活,比如新建了一个配置,我们此时就要把这个配置上传然后让大管家获得。

所以我们新建一个文本,然后更改名字以及后缀为application.yml(要以UTF-8的形式保存!否则上传之后会报乱码的问题)

4.1YML内容

spring:

profiles:

active:

- dev

---(保证了同一个文件不同配置环境的问题)

spring:

profiles: dev #开发环境

application:|

name: microservicecloud-config-atguigu-dev

---

spring:

profiles: test#测试环境

application:

name: microservicecloud-config-atguigu-test

#请保存为 UTF-8 格式

保存格式必须为 UTF-8

在另存为的时候要注意切换编码!否则 GitHub 会报错

将上一步的YML文件推送到 github 上

三大命令

git add

git commit -m "init file"

git push origin master(因为我们在master的分支下)

步骤结果

命令清单

此时要将我们的 yml 文件推送到 github 上使用 git 的三大命令

红色表示此时监控到了我们的目录发生了改变,之后我们要从本地硬盘提交它的临时库,同时要注意一定要写提交的注释信息

5.2.2GitHub

在网速还可以的情况下,我们就可以看到,刷新之后就会显示我们提交的文件信息

新建 Module 模块 microservicecloud-config-3344 它即为 Cloud 的配置中心模块

点右键中新建的other,

选择 Maven Module 命名为 microservicecloud-config-33

POM

修改内容

图片3.png

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-server</artifactId></dependency>

全部内容

<projectxmlns="http:/maven.apache.org/PON/4.0.0”xmIns:xsi="http://ww.w3.org/2001/XNLSchema-instance"xsi:schemaLocation="http://maven.apache.org/PON/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>

<parent>

<groupId>com.atguigu.springcloud</groupId><artifactId>microservicecloud

</ artifactId><version>0.0.1-SNAPSHOT</version>

</parent>

<artifactId>microservicecloud-config-3344</artifactId>

<dependencies>

<! -- springCloud Config --><dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-server</artifactId></dependency>

<!--避免 Config 的 Git 插件报错:

ong/eclipse/jgit/api/TransportConfigCallback-->

<dependency>

<groupId>org.eclipse.jgit</groupId>

<artifactId>org.eclipse.jgit</artifactId><version>4.10.0.201712302008-rs/version></dependency>

<!--图形化监控–-><dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId></dependency>

<! --熔断-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-hystrix< /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>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jetty< / artifactId>

</ dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</ artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</ artifactId>

</dependency>

<热部署插件>

<dependency>

<groupId>org.springframework</groupId><artifactId>springloaded< / artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId>

</dependency>

</dependencies>

</project>

YML

server:

port: 3344

spring:

application:

name:microservicecloud-config

cloud:

config:

server:

git:

uri:git@github.com:zzyybs/microservicecloud-config.git #GitHub上面的 git 仓库名字

首先新建一个名为 application.yml 的文件,将内容复制进去。我们可以看到uri之后的就是我们前面建立的地址。

主启动类

Config_3344_StartSpringCloudApp --@EnableConfigServer

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication

@EnableConfigserver

public class Config_3344_stlrtSpringCloudApp

{

public static void main(String[ ] args)

{SpringApplication.run(Config_3344_StartSpringCloudApp.class,args);}

}

4. windows下修改 hosts 文件,增加映射

-127.0.0.1 config-3344.com

5. 测试通过Config微服务是否可以从GitHub上获取配置内容

第一步:启动微服务3344

我们启动时,先打开远端的内容可以发现有两个,说明统一个 yml 文件可以两面配置,这样我们就可以达到一个动态环境的切换。首先我们来看看我们的3344,是否能够成功启动。成功启动。

第二步:

使用http://config-3344.com:3344/application-dev.yml

访问测试是否能够读取到。

application-dev.yml 表示我们要访问 application.yml 中的 -dev 环境,如果顺利的话就会读取到

microservicecloud-config-atguigu-dev。

第三步:访问test环境时,输入以下网址

http://config-3344.com:3344/application-test.yml,出现的-dev就会变成-test。

由此我们就成功的由334连上了我们的Github远程库。同时得到了该库下的两种不同配置环境结果。

http://config-3344.com:3344/application-xxx.yml(不存在的配置)

假设我们输入上方的网址访问了不存在的配置就会报错。 

12.配置读取规则

官网

{application}-{profile}.yml

{application}/{profile}[/{label}]

l http://config-3344.com:3344/application/dev/master

l http://config-3344.com:3344/application/test/ma

l http://config-3344.com:3344/application/xxx/mas

{label}/{application}-{profile}.yml

l http://config-3344.com:3344/master/application-dev.yml

l http://config-3344.com:3344/master/application-test.yml

其中的一种演示结果如图,仅仅是把 master 放在前面。依旧能够成功访问。

以上的形式都可以用于访问。

成功实现了用 SpringCloud Config 通过 GitHub 获取配置信息

相关文章
|
3月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
2天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
|
3月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
174 0
|
3月前
|
Java 开发工具 对象存储
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
53 2
|
3月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
122 0
Vue3基础(19)___vite.config.js中配置路径别名
|
4月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
2月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
67 0
|
2月前
|
负载均衡 Java API
【Spring Cloud生态】Spring Cloud Gateway基本配置
【Spring Cloud生态】Spring Cloud Gateway基本配置
47 0
|
4月前
|
Java 微服务 Spring
Spring Cloud全解析:配置中心之解决configserver单点问题
但是如果该configserver挂掉了,那就无法获取最新的配置了,微服务就出现了configserver的单点问题,那么如何避免configserver单点呢?