开发者学堂课程【微服务框架 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,说明成功连接。