SpringCloud Config 客户端配置与测试|学习笔记

简介: 快速学习 SpringCloud Config 客户端配置与测试

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

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


SpringCloud Config 客户端配置与测试

 

自己带一个 application.yml,现在是看A,B和C去通过334来读到GitHub的信息。 图片1.png1. 在本地

D:\44xmySpringCloud\microservicecloud-config路径下新建文件microservicecloud-config-client.yml

在电脑中找到相应的目录下新建一个新的文件夹同时将其命名为microservicecloud-config-client.yml。同时右键点击打开记事本。

2. microservicecloud-config-client.yml内容

其中的 port:xxx 是端口号,dev 和 test 指的是配置文件。当我们的配置为 dev 时,端口号是8201并输出对应的 dev 的信息。而配置为 test,端口号为8202并对应输出test的信息。同时 eurka 在其中只是一个配置文件。

spring:

Profiles:

active:

- dev

---

server:

port: 8201

spring:

profiles: dev

application:

name: microservicecloud-config-client

eureka:

client:

service-url:

defaultZone: http: / /eureka-dev.com: 7001/eureka/

---

server:

port: 8202

spring:

profiles: test

application:name: microservicecloud-config-client

eureka:

client:

service-url:

defaultZone: http: //eureka-test.com:7001/eureka/

将其以上的代码输入记事本当中,以UT-8的形式保存到记事本中.

3. 将上一步提交到GitHub中

点击config-client.yml文件

分别输入 git status

git add.

git commit -m”test config”

git push origin master四条指令,如果成功执行的话我们就可以看见git下面会显示两个配置文件。

3.新建 microservicecloud-config-client-3355

就相当于我们尝试一下 ClientA 是否能通过 3344(Config Server)获取到Git上远程地址链接,拿到外置的统一配置分化管理。

图片1.png

首先点右键中新建的 other,选择Maven Module命名为microservicecloud-config-client-3355。 

4. POM

同时按照惯例,将POM里的修改内容和全部内容依次创建然后粘贴内容。

修改内容

第四行的config后就没有再接server说明他是server端。

<! -- SpringCloud Config客户端-->

<dependency>

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

<artifactId>spring-cloud-starter-config<yartifactId>

</dependency>

全部内容

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

<parent>

<groupid>com.atguigu.springcloud</groupId>

<artifactId>microservicecloud</ artifactId>

version>e.e.1-SNAPSHOT</version>

</parent>

<artifactid>microservicecloud-config-client-3355</artifactid>

<dependencies>

<l--SpringCloud Config客户端-->

<dependency>

<dependency>

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

<artifactId>spring-cloud-starter-config</ artifactId>

</ dependency>

<dependency>

5. bootstrap.yml

我们在讲 DVM 的时候曾经讲过 class.类装载器,bootstrap 是系统级的封装显示最高权限的。

言下之意 bootstrap.yml 说明她也是一个配置文件。我们首先创建一个文件命名为 bootstrap.yml。

5.1applicaiton.ym 是什么

applicaiton.yml是用户级的资源配置项

bootstrap.ym1是系统级的,优先级更加高

Spring Cloud会创建一个'Bootstrap Context',作为 Spring 应用的` Application Context 的父上下文。初始化的时候,`Bootstrap Context'负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的Environment'。

'Bootstrap`属性有高优先级,默认情况下,它们不会被本地配置覆盖。‘Bootstrap context和Application Context有着不同的约定。

所以新增了一个'bootstrap.yml'文件,保证`Bootstrap Context和`Application Context`配置的分离。

在此处只要保证3355能够连上3344,就可以直接通过3344就可以得到本次要访问的文件。因为3344就是连着这个Git库所以就可以直接得到本次要访问的文件信息。

由代码可以知道为dev配置,所以一切顺利的话就会输出端口号为8201,名字为 microservicecloud-config-client。

spring:

cloud:

config:

name: microservicecloud-config-client #需要从github上:读取的资源名称,注意没有yml后缀名

profile: dev#本次访问的配置项

label: master

uri: http://config-3344.com:3344 #木微服缝启动后先去找3344号服务,通过 SpringCloudConfig 获取 GitHub 的服务地址

6. application.yml

依旧把 appplication.yml 再 cloud 里面要必须要保证,所以此时3344为大管家,3355为客户,3355通过3344来获取远端的GitHub。

此时我们需要 appplication.yml 然后然后它获取对应的信息。同时bootstrap.yml为系统级的配置文件,比用户级的大一级,所以只用留一个名字就行。同时要注意名字一定要一致。

spring:

application:

name: microservicecloud-config-client

7. windows 下修改 hosts 文件,增加映射——127.0.0.1 client-config.com

同时再做一次 host 增加文件的映射.(不再演示)

127.0.0.1

conlig-3344.com

127.o.o.1

client-config.cord

8. 新建rest类,验证是否能从GitHub上读取配置

无论如果此时我们的默认配置是Dev,判断能否从

GitHub里面获取配置信息。

package com.atguigu.springcloud.rest;

import org.springframework.beans.factory.annotation.Value;

Import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@Restcontroller

public class ConfigclientRest {

//其中获得了三个变量,是从配置文件中获取信息

@value("${spring.application.name} ")

private string applicationName;

@Value("${eureka.client.service-url.defaultZone}")

private string eurekaServers;

@Value("${server.port}")

Private String port;

@RequestMapping(" /config")

public string getConfig( )

{

String str = "applicationName: "+applicationName+"\t eurekaServers :" eurekaServers+"\t port:" port;

System.out.println(""*家赛家市*str: "+str);

return "applicationName: "+applicationName+"\)t eurekaServers: " +eurekaServers+"\[t port: "+port;

}

}

新建一个名为com.atguigu.springcloud.rest包,同时在包下新建一个ConfigClientRest的类。将代码粘贴放入。

9. 主启动类ConfigClient_3355_StartSpringCloudApp

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class Configclient,3355_startSpringcloudApp

{

public static void main(String[ ] args)

{SpringApplication.run(ConfigClient_3355_StartSpringCloudApp.class,arg);

}

}

在 com.atguigu.springcloud.rest 包里面新建一个类名为ConfigClient_3355_StartSpringCloudApp 的类,将代码中的rest删除然后右键打开文件夹,将其移至atguigu下面,同时再刷新一下。

最后别忘了刷新 microservicecloud-config-client-3355 工程,成功之后就会显示如图。最后把主启动类的代码放进去。

10. 测试

我们先把3344和3355都启动,看看3355是否能通过3344来获取信息,下载到本地。

图片4.png

启动Config配置中心3344微服务并自测

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

启动3355作为 Client 准备访问

bootstrap.yml 里面的 profile 值是什么,决定从 github 上读取什么 

假如目前是profile: dev

l dev 默认在github.上对应的端口就是8201

l http://client-config.com:8201/config

假如目前是 profile: test

l test 默认在 github.上对应的端口就是8202

//就相当于于是做了我们的域名映射

l http://client-config.com:8202/config 

DEV时:

根据之前我们知道本地配置是dev,可以看到dev一切顺利的话端口号是8201,言下之意就是说我们的rest此时的端口号值就是8201.

可以通过运行的结果看出,现在我们取的 config-client,在 dev 配置的时候,输出的端口号是8201。

2. TEST时:

如果要查看test的结果是就应该将 boostrap.yml 中的 dev 改成test,此时就是以同一配置文件变相的进行了切换。我们就可以看到端口号变成了8202.

成功实现了客户端3355访问 SpringCloud Config3344 通过GitHub 获取配置信息

相关文章
|
3月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
2天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
|
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中配置路径别名
|
2月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
67 0
|
2月前
|
负载均衡 Java API
【Spring Cloud生态】Spring Cloud Gateway基本配置
【Spring Cloud生态】Spring Cloud Gateway基本配置
47 0
|
3月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
5天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
88 12
Spring Cloud Alibaba:一站式微服务解决方案
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
136 1