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

相关文章
|
1天前
|
canal 缓存 关系型数据库
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
|
1天前
|
Java 数据安全/隐私保护 Sentinel
微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
|
2天前
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
12 0
|
2天前
|
监控 Java 微服务
第八章 Spring Cloud 之 Hystrix
第八章 Spring Cloud 之 Hystrix
|
2天前
|
监控 Java API
第七章 Spring Cloud 之 GateWay
第七章 Spring Cloud 之 GateWay
|
2天前
|
负载均衡 前端开发 Java
第六章 Spring Cloud 之 OpenFeign
第六章 Spring Cloud 之 OpenFeign
|
2天前
|
消息中间件 Java Nacos
第三章 Spring Cloud简介
第三章 Spring Cloud简介
|
2天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
2天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
9天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。