当前位置:主页 > 查看内容

开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实

发布时间:2021-07-30 00:00| 位朋友查看

简介:哈喽各位同学们大家好呀 今天是开发者学院中课程“Spring Cloud微服务架构设计与开发实战”的章节三的“Nacos作为Spring Cloud配置中心”干货总结~是一起学习新课程吧 课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳 课程名称 Nacos作为Spring……

哈喽各位同学们大家好呀 今天是开发者学院中课程“Spring Cloud微服务架构设计开发实战”的章节三的“Nacos作为Spring Cloud配置中心”干货总结~是一起学习新课程吧

课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳

课程名称 Nacos作为Spring Cloud配置中心

课程地址 https://developer.aliyun.com/learning/course/60/detail/1098

图谱名称 Alibaba Java 技术图谱

图谱地址 https://developer.aliyun.com/graph/java

Nacos作为Spring Cloud配置中心


(一)Nacos作为Spring Cloud配置中心??

1、Nacos配置中心?

阿里开源Nacos的另外一个功能 统一配置中心 是对于方式集群大规模集群非常重要的一个功能点 阿里开源Nacos 实际是集注册中心和配置中心为一身 是一个非常全能的工具。?

Nacos启动阶段配置文件稍微特殊一点 有一个bootstrap文件? 是加载普通配置之前执行的一个动作 优先启动的一个文件系统 会优先读取文件中的一些配置数据。?

Spring Cloud Alibaba?Nacos?Config??
Nacos提供用于存储配置和其他元数据的?key/value?存储 ??
为分布式系统中的外部化配置提供服务器端和客户端支持。??
使用Spring Cloud Alibaba?Nacos?Config ??
可以在Nacos?Server?集中管理Spring Cloud?的外部属性配置。?
Alibaba?Nacos?Config?是Config Server?和Client?的替代方案 ??
客户端和服务器上的概念与?Spring Environment?和PropertySource有?着一致的抽象 ?
bootstrap?启动阶段 配置被加载到?Spring?环境中。??
当应用程序通过部署管道从开发到测试再到生产时 ??
可以管理不同环境dev\test\pro的配置 ??
并确保应用程序具有迁移时需要运行的所有内容。?

?

2、Nacos配置服务??

Nacos也支持配置服务 ??
统一微服务集群的配置信息 ?
支持配置的动态更新 ?
可支持profile粒度的配置 ?
支持自定义?namespace?的配置 做资源管理配置 数据可到开发测试 生产环境有了命名空间 里面找对应的一个配置数据 进行推送下发 主要便于实现配置的更新和推送管理 ?
支持自定义?Group?的配置 主要是分组去管理服务的 ?
支持自定义扩展的?Data Id?配置 ?
配置的优先级 ?
可以通过Spring的${spring.profiles.active}?配置多套环境 ?
微服务项目需要spring-cloud-starter-alibaba-nacos-config ?
支持两种配置文件格式:??

bootstrap.properties??

bootstrap.yml?

?

二 微服务集成Nacos配置中心??

1、Nacos配置中心实战??

?启动Nacos服务??

?Nacos添加配置参数??

?修改客户端 连接Nacos配置中心??

?注意 ?

版本2.1.x.RELEASE对应的是Spring Boot 2.1.x?版本。?

版本2.0.x.RELEASE对应的是Spring Boot 2.0.x?版本 ?

版本1.5.x.RELEASE对应的是Spring Boot 1.5.x?版本。?

2、客户端配置??

? dependency ??

? groupId com.alibaba.cloud /groupId ??

? artifactId spring-cloud-starter-alibaba-nacosconfig /artifactId ??

? /dependency ?

?

3、微服务集成Nacos配置中心?

?bootstrap.propertie配置Nacos?Server?地址??

?spring.application.name nacos-config??

?spring.cloud.nacos.config.server-addr 127.0.0.1:8848?

?

4、Nacos支持动态刷新配置??

?通过配置?spring.cloud.nacos.config.refresh.enabled false?来关闭动态刷新?

动态更新 启动的更新本质上是自动会刷新配置 一边改完以后 另一边会迅速读到通过线程读取 线程去远端去进行拉取操作。?

原始的APP协议 本身并不是双工通信 是单向的。?

?

更新配置实战效果?

image.png?

?

6、Spring Cloud配置参数变?

image.png?

?

7、Spring Cloud配置参数变化?

image.png?

?

Spring Cloud配置参数变化?

image.png?

?

Nacos配置中心其他功能??

实战案例?

配置服务可以是普通的微服务项目 普通微服务项目改造config依赖 因为要实现配置 如简单的配置推送拉取 这是config独有的。?

image.png?

配置文件定义就按照下图规则来做?

image.png?

关键的配置 选的活动状态是dev dev模式就是开发环境 要保证和配置中心要统一 这里端口稍微改了 8787 通过这样一个配置 读取Nacos配置中心最新的配置数据 然后在本地做一个展示。?

image.png?

本地展示 通过拟定了一个简单动态的变量来测试 主要是定义了一个用户名 一个密码 两个变量 通过围绕注解 让它自动去加载最新的变量值。?

image.png?

启用注解 refresh主要作用自动去背后线程去拉取注册中心最新的值。?

image.png?

默认值 一个是Java 一个是1234qwer。?

image.png?

通过接口来调用 返回最新的用户密码 所以这里面如果之前用户和密码是Java和1234qwer的话 正常配置中心推送完新的配置后 重新查询 就应该返回新的值。?

正常加载bootstreap再加载?Applcation?

image.png?

支持profile粒度的配置?

?spring-cloud-starter-alibaba-nacos-config?在加载配置的时?候 不仅仅加载了以dataid?为${spring.application.name}.${file-extension:properties}?为前?缀的基础配置。?

?还加载了dataid为?${spring.application.name}${profile}.${file-extension:properties}?的基础配置。??

?在日常开发中如果遇到多套环境下的不同配置 可以通过Spring?提供的?${spring.profiles.active}?这个配置项来配置。??

?spring.profiles.active dev??

?spring.profiles.active test??

?spring.profiles.active pro?

?

支持自定义?namespace?的配置?

??用于进行租户粒度的配置隔离。不同的命名空间下 可以存在相同的?Group?或?Data ID?的配置。Namespace?的常用场景之一是不同环境的配?置的区分隔离 例如开发测试环境和生产环境的资源 如配置、服务 隔离?等。??

?在没有明确指定?${spring.cloud.nacos.config.namespace}?配置的情况下 ?默认使用的是?Nacos?上?Public?这个namespae。如果需要使用自定义的命?名空间 可以通过以下配置来实现 ??

?spring.cloud.nacos.config.namespace b3404bc0-d7dc-4855-b519570ed34b62d7??

?该配置必须放在?bootstrap.properties?文件中。此外?spring.cloud.nacos.config.namespace?的值是?namespace?对应的?id ?id?值可以在?Nacos?的控制台获取。并且在添加配置时注意不要选择其他的?namespae 否则将会导致读取不到正确的配置。?

?

支持自定义?Group?的配置??

?在没有明确指定?${spring.cloud.nacos.config.group}?配置的情?况下 ?默认使用的是?DEFAULT_GROUP?。??

?如果需要自定义自己的?Group 可以通过以下配置来实现 ??

?spring.cloud.nacos.config.group DEVELOP_GROUP??

?该配置必须放在?bootstrap.properties?文件中。并且在添加配?置时?Group?的值一定要和?spring.cloud.nacos.config.group?的配置值一致。?

?

支持自定义扩展的?Data Id?配置?

??Spring Cloud Alibaba?Nacos?Config?从?0.2.1?版本后 可支持自定义?Data Id?的配置。关于这部分详?细的设计可参考?这里。?一个完整的配置案例如下所示:?

??spring.application.name opensource-service-provider??

??spring.cloud.nacos.config.server-addr 127.0.0.1:8848?

??# config external configuration??

??# 1、Data Id?在默认的组?DEFAULT_GROUP,不支持配置的动态刷新??

??spring.cloud.nacos.config.extension-configs[0].data-id ext-config-common01.properties?

??# 2、Data Id?不在默认的组 不支持动态刷新??

??spring.cloud.nacos.config.extension-configs[1].data-id ext-config-common02.properties??

??spring.cloud.nacos.config.extension-configs[1].group GLOBALE_GROUP?

??# 3、Data Id?既不在默认的组 也支持动态刷新??

??spring.cloud.nacos.config.extension-configs[2].data-id ext-config-common03.properties??

??spring.cloud.nacos.config.extension-configs[2].group REFRESH_GROUP??

??spring.cloud.nacos.config.extension-configs[2].refresh true?

?

配置的优先级??

?Spring Cloud Alibaba?Nacos?Config?目前提供了三种配置能力?从?Nacos?拉取相关的配置。??

?A:?通过?spring.cloud.nacos.config.shared-configs[n].data-id?支持多个共享?Data Id?的配置??

?B:?通过?spring.cloud.nacos.config.extensionconfigs[n].data-id?的方式支持多个扩展?Data Id?的配置??

?C:?通过内部相关规则(应用名、应用名 Profile )自动生成相关的?Data Id?配置??

?当三种方式共同使用时 他们的一个优先级关系是:A B C?


本文转自网络,原文链接:https://developer.aliyun.com/article/785978
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐