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 获取配置信息

相关文章
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
41 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
1月前
|
Java Spring 容器
springcloud-config客户端启用服务发现报错找不到bean EurekaHttpClient
解决 Spring Cloud Config 客户端启用服务发现时报错找不到 bean `EurekaHttpClient` 的问题,主要涉及版本兼容性、依赖配置和正确的配置文件设置。通过检查依赖版本、添加必要的依赖项、配置文件的正确性以及启用服务发现注解,可以有效解决此问题。确保日志中没有其他错误信息也是关键步骤之一。通过这些方法,可以确保 Spring Cloud Config 与 Eureka 客户端正常工作。
35 6
|
5月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
5月前
|
Java 开发工具 对象存储
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
93 2
|
6月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
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
|
6月前
|
JSON 前端开发 JavaScript
vue.config.js配置详解
【8月更文挑战第16天】vue.config.js配置详解
284 1
vue.config.js配置详解
|
6月前
|
Web App开发 安全 JavaScript
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
112 0

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
  • 4
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
  • 8
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
  • 9
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
  • 10
    AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架