Spring Cloud Config 配置实战|学习笔记

简介: 快速学习 Spring Cloud Config 配置实战

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

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


Spring Cloud Config配置实战

 

目录:

一、当前状况

二、步骤

一、当前状况

1)Config 服务端配置OK 且测试通过,我们可以和 config+GitHub 进行配置修改并获得内容

2)此时我们做一个 eureka 服务+一个 Dept 访问的微服务,将两个微服务的配置统一由 github 获得实现统一配置分布式管理,完成多环境的变更

 

二、步骤

2.1Git 配置文件本地配置

在本地D:\44\mySpringCloud\microservicecloud-config路径下新建文件microservicecloud-config-eureka-client.yml

microservicecloud-config-eureka-cfient.yml 内容

输入进去,同时保存为 UTF-8 的形式。

microservicecloud-config-eureka-cfient.yml内容

eureka:

instance:

hostname: eureka7001.com #冒号后面必须要有空格client:

register-with-eureka: false #当前的eureka-server自己不注册进服务列表中

fetch-registry: false #不通过eureka获取注册信息

service-url:

defaultZone: http: / /eureka7001.com:7001/eureka/

---

server:

port: 7001#注册中心占用7001端口,冒号后面必须要有空格

spring:

profiles: test

application:

name: microservicecloud-config-eureka-client

eureka:

instance:

hostname: eureka7001.com# 冒号后面必须要有空格

client:

register-with-eureka: false #当前的 eureka-server 自己不注册进服务列表中

fetch-registry: false #不通过eureka获取注册信息

service-url:

defaultZone: http: //eureka7001.com:7001/eureka/

2.1.3

在本地

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

将其用记事本的形式打开将以下

microservicecloud-config-dept-client.

yml 的内容复制到里面,同时惯例再以UTF-8的形式保存。

microservicecloud-config-dept-client.yml内容

Spring:

profiles:

active:

- dev

---

server

port: 8001

spring:

profiles: dev

application:

name: microservicecloud-config-dept-client

datasource:

type: com.alibaba.druid.pool.DruidDataSource

driver-class-name: org.gjt.mm.mysql.Driver

url: jdbc:mysql: / / localhost:3306/cloudDB01

username : root

password: 123456

dbcp2:

min-idle: 5

initial-size: 5

max-total: 5

max-wait-millis: 200

mybatis:

config-location:classpath :mybatis/mybatis.cfg.xml

type-aliases-package: com.atguigu.springcloud.entities

mapper-locations:

- classpath:mybatis/mapper/**/*.xml

eureka:

client: #客户端注册进eureka服务列表内

service-url:

defaultzone: http: / l eureka7001.com:7001/eureka

instance:

instance-id: dept-8001.com

max-total: 5

max-wait-millis: 200

mybatis:

config-location:classpath: mybatis/mybatis.cfg.xml

type-aliases-package:com.atguigu. springcloud.entities

mapper-locations:

- classpath : mybatis/mapper/**/*.xml

eureka:

client: #客户端注册进 eureka 服务列表内

service-url:

defaultZone: http: /l eureka7001.com: 7001/eureka

instance:

instance-id: dept-8001.com

prefer-ip-address: true

info:

app.name:atguigu-microservicecloud-springcloudconfig02

company. name: www.atguigu.com

build.artifactId: $project.artifactId$

build.version: $project.version$

同时输入 git 指令将两个内容上传到远端

2.2Config 版的 eureka 服务端

新建工程

microservicecloud-config-eureka-client-

7001

<project xmIns="http://maven.apache.org/POM/4.0.0”xmIns:xsi

="http://ww.w3.org/2001/XNLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

</dependency>

<! --热部署插件–-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>springloaded</artifactId>

<dependency>

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

<artifactId>spring-boot-devtools</artifactId>

</dependency>

</dependencies>

</project>

spring:

cloud:

config:

name: microservicecloud-config-eureka-client

#需要从 github 上读取的资源名称,注意没有 yml 后缀名

profile: dev

label: master

uri: http://config-3344.com: 3344

springCloudConfig 获取的服务地址

先新建一个名为 bootstrap.yml 的文件,再将 bootstrap.yml 的内容给粘贴进去

application.yml

spring:

application:

name: microservicecloud-config-eureka-client

先新建一个名为 application.yml 的文件,再将 application.yml 的内容给粘贴进去。

主启动类

Config_Git_EurekaServerApplication

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka. server.EnableEureka

Server;

/**

*EurekaServer 服务器端启动类,接受其它微服务注册进来

*@author zhouyang

*/

@SpringBootApplication

@EnableEurekaServer

public class Config_Git_EurekaServerApplicaion

{

public static void main(String[] args)

{SpringApplication.run(Config_Git_EurekaServerApplication.class,args);

}

}

l 先启动microservicecloud-config-3344微服务,保证Config总配置是OK的

l 再启动

microservicecloud-config-eureka-client-7001微服务

l http://eureka7001.com:7001/

此时当两个微服务都成功启动后,输入网址。出现了eureak主页则表示成功启动。

2.3Config 版的 dept 微服务

参考之前的8001拷贝后新建工程

microservicecloud-config-dept-client-8001

与之前的步骤一样,新建java一个工程,同时不要忘记勾选create a simple project

找到 microservicecloud-provide-dept-8001 打开所存储的位置,同时将 com 复制下来,拷贝到src中

microservicecloud-config-dept-client-8001里面新建一个bootstrap.yml,将代码粘贴进去。

spring:

cloud:

config:

name: microservicecloud-config-dept-client

#需要从 github 上读取的资源名称,注意没有yml后缀名

#profile 配置是什么就取什么配置dev or test

#profile: dev

profile: testlabel: master

uri: http: / /config-3344.com:3344

#SpringCloudConfig获取的服务地址

2.3.4application.yml

microservicecloud-config-dept-client-8001新建一个application.yml,将代码粘贴进去。

spring:

application:

name: microservicecloud-config-dept-client

主启动类及其它一套业务逻辑代码

l 主启动类

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClie

nt;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication

@EnableEurekaClient //本服务启动后会自动注册进eureka服务中@EnableDiscoveryclient //服务发现

public class DeptProvider8001_App

{

public static void main(String[ ] args)

{

SpringApplication.run(DeptProvider8001_App.class,args);

}

}

同时将microservicecloud-provider-dept-8001的

scr/main/resource中的文档对应复制粘贴到

microservicecloud-config-dept-client-8001的

scr/main/resource中。

l 其他业务逻辑代码

配置说明

spring:

cloud:

config:

name: microservicecloud-config-dept-client

#需要从github上读取的资源名称,注意没有yml后缀名profile配置是什么就取什么配置dev or test

#profile: dev

profile: test

label: master

uri: http://config-3344.com:3344 SpringCloudConfig获取的服务地址

主要看bootstrap.yml文件里面的

profile:属性具体值是什么,从而确定它能从github上取得什么样的配置

假如配置dev左图,如果配置test那就找右图,具体各自数据库不同,从而依据配置得到分布式配置的目的。

测试

将3344启动,再把eureka-config端启动,再把8001启动等待三个都完全启动之后,我们就可以开始测试。

在网页中输入网址 eureka7001.com 访问我们可以看到

MICROSERVICECLOuD-CONFIG-DEPT-CLTENT 已经被成功注册进eureka。

1) test配置默认访问

l http://localhost:8001/dept/list

l 可以看到数据库配置是02

根据之前的配置说明我们可以看到test对应的配置是02

2)换配置成dev

l http://localhost:8001/dept/list

l 可以看到数据库配置是01

之后我们再来演示另一个测试操作:

我们找到电脑中存储 microservicecloud-config-dept-client 的地方,以右键点击打开方式以记事本打开。

将其中 dev 所对的 cloudDB02 中的02改成03,之后再以UTF-8的形式保存。

同时再 Git 命令窗口输入 git add.

git commit -m”update file 1 to 3

git push origin master

执行成功之后我们就能够发现,3号库会被连接成功。

我们依次启动3344,7001和8001。

之后再访问网址http://localhost:8001/dept/list,可以发现原本的01变成了03,说明成功连接。

相关文章
|
2月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
13天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
47 3
|
1月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
156 0
|
2月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
107 0
Vue3基础(19)___vite.config.js中配置路径别名
|
3月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
1月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
56 0
|
2月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
128 1
|
1月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
140 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
下一篇
无影云桌面