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

相关文章
|
2天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
|
11天前
|
监控 负载均衡 容灾
slb测试配置
slb测试配置
24 5
|
20天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
43 3
|
1月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
53 1
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
76 4
|
2月前
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
74 1
|
2月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
53 1
|
2月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
154 0
|
3月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
174 0