配置中心(SpringCloudConfig)
概述
在集群搭建时,存在许多类似的服务中的配置信息都相同,在修改的时候维护性较低,所以可以采取一个配置中心将相同的配置内容抽取出来统一管理 配置信息抽取出来存放在gitee或github的仓库中,应用服务器通过config server来找到配置信息
实现步骤
仓库
gitee勾选README创建新仓库,创建配置文件,配置文件的名称为application-profiles;application:配置客户端的服务名;profiles:配置文件的版本
Config Server
- 创建一个配置中心的服务,并引入依赖web与config-server以及bootstrap(对于外部资源文件在bootstrap.yml中加载如果没有引入bootstrap依赖则无效)
- 创建辅助配置文件bootstrap.yml(bootstrap.yml的加载顺序高于application.yml)来找到仓库
spring:
application:
name: service-user
cloud:
config:
server:
git:
uri: https://gitee.com/goushengzi123/ticketconfig
default-label: master
- application.yml指定端口与git配置
server:
port: 9010
spring:
profiles:
active: native
- 入口类上添加注解
@EnableConfigServer - 配置完成后可以通过spring官方指定的访问方式来测试,如果可以看到配置文件的内容那么成功
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
application:配置客户端应用名称 profiles:版本 label:分支,默认master 如上方,application-profiles就是创建的文件名
Config Client
- 引入依赖spring-cloud-starter-config,boostrap
- 初始化配置文件bootstrap.yml
spring:
profiles:
active: dev
---
spring:
profiles: dev
cloud:
config:
uri: http://localhost:9010
label: master
profile: dev
---
spring:
profiles: prod
application:
name: service-user
cloud:
config:
uri: http://localhost:9010
label: master
profile: prod
这里配置了两个版本的配置文件(dev开发环境,sit测试环境,prod生产环境),通过spring.profiles.active来指定版本
- 测试是否成功,可以通过在配置文件中自定义属性,然后使用@Value注入到字段中,输出查看
链路追踪(Spring Cloud Zipkin)
概述
Zipkin是一个分布式实时数据跟踪系统(Distributed Tracking System),主要功能是收集,储存,查找来自不同服务的实时监控数据,当微服务越来越多,每个服务操作时间百分比、服务调用是否失败等数据通过zipkin可以很方便的收集到
启动
zipkin是一个jar文件,使用java -jar zipkin.jar 指令即可启动zipkin服务器,默认端口是9411
对服务启用监控
- 添加依赖spring-cloud-starter-zipkin
- 添加配置
spring:
zipkin:
base-url: http://localhost:9411
Nacos
概述
Nacos英文全称Dynamic Naming and Configuration Service(动态注册和配置服务),Na为naming/nameServer即注册中心,co为configuration即配置中心,service是指该注册/配置中心都是以服务为核心
Nacos启动
与Ereka不同,nacos是一个独立的服务器,该服务器默认集群启动,使用这样的指令来指定单机启动:sh startup.sh -m standalone linux,bash startup.sh -m standalone ubuntu linux,startup.cmd -m standalone windows;默认端口为8848
Nacos Spring Cloud
- 引用spring-cloud-alibaba的版本管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 引入nacos依赖
通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 配置
spring:
cloud:
nacos:
config:
server-addr: localhost:8848
- 入口类添加注解
@EnableDiscoveryClient 开启服务注册,在处理器类添加注解@RefreshScope 开启配置自动更新
|