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,说明成功连接。

相关文章
|
12天前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
138 73
|
9天前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
33 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
12天前
|
Java Spring
【Spring配置相关】启动类为Current File,如何更改
问题场景:当我们切换类的界面的时候,重新启动的按钮是灰色的,不能使用,并且只有一个Current File 项目,下面介绍两种方法来解决这个问题。
|
13天前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
13天前
|
Java Spring
【Spring配置】创建yml文件和properties或yml文件没有绿叶
本文主要针对,一个项目中怎么创建yml和properties两种不同文件,进行配置,和启动类没有绿叶标识进行解决。
|
18天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
54 6
|
Dubbo Java 应用服务中间件
深入了解Spring Cloud Alibaba Dubbo
在现代分布式系统开发中,构建高性能、可伸缩性和弹性的微服务架构变得越来越重要。Spring Cloud Alibaba Dubbo(简称Dubbo)是一个开源的分布式服务框架,可以帮助开发者构建强大的微服务架构,具备负载均衡、服务治理、远程调用等强大功能。本文将深入介绍Spring Cloud Alibaba Dubbo,帮助你理解它的核心概念、工作原理以及如何在你的项目中使用它。
|
Kubernetes Java 微服务
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
155 0
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
|
8月前
|
Java 中间件 开发者
Spring Cloud Alibaba
【1月更文挑战第27天】【1月更文挑战第127篇】Spring Cloud Alibaba
148 1
|
7月前
|
消息中间件 Java 持续交付
Spring Cloud Alibaba 项目搭建步骤和注意事项
Spring Cloud Alibaba 项目搭建步骤和注意事项
874 0
Spring Cloud Alibaba 项目搭建步骤和注意事项