SpringCloud Alibaba——Nacos服务注册与配置中心(二、作为服务配置中心)

简介: SpringCloud Alibaba——Nacos服务注册与配置中心(二、作为服务配置中心)

1.开篇



为什么叫Nacos?前四个字母分别为NamingConfiguration的前两个字母,最后的sService


Nacos是什么:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。


在之前学习SpringCloud H版的时候,一般来说是用Eureka作为服务注册中心,Config + Bus来进行服务配置。那么现在有了阿里的Nacos,就完全可以替代前面说的那三个,也即:Nacos = Eureka + Config + Bus


Nacos的官方文档:https://nacos.io/zh-cn  https://github.com/alibaba/nacos/

https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_nacos_discovery


有关Nacos的下载安装请参考:https://blog.csdn.net/weixin_43823808/article/details/119480692


上一篇文章说到Nacos作为服务注册中心的配置与实现,这篇文章来说一下Nacos作为服务配置中心。首先一个很大的区别就是Nacos作为服务注册中心的时候,我们的微服务模块只需要配置一个yml就可以了;而现在作为服务配置中心则需要两个!!!


原因:Nacosspringcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application。(也就是我必须先获取总的配置文件信息,然后再配置自己私有的信息)


之前学SpringCloud H版的Config + Bus时,为了实现动态刷新,需要@RefreshScope注解,还需要写其他很多东西。那么现在有了Nacos,有很多配置都不需要再写了,但是仍然需要这个注解@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。


更多配置信息,直接参考Nacos的官方文档:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html


最终读取到配置文件的公式:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

2.项目源码


github源码地址:https://github.com/2656307671/SpringCloud-Alibaba-Nacos

gitee源码地址:https://gitee.com/szh-forever-young/SpringCloud-Alibaba-Nacos

下面先演示Nacos作为服务配置中心的基本配置。这里只对应3377这一个微服务模块。

首先在Nacos的配置管理---配置列表中,新增一个配置文件、内容如下。(关于Data IdGroupNamespace后面再说)


配置文件添加成功之后,我们到浏览器中测试,可以正常访问。


此时对刚刚添加的配置文件做一个修改,将version改为2。然后不用重启3377,直接再到浏览器中刷新刚才的访问页面,可以看到version也更新成了2

这就是@RefreshScope 注解实现了动态刷新功能。


下面再来说一下Nacos作为服务配置中心的分类配置。(什么是Data IdGroupNamespace?)


实际开发中,通常一个系统会准备dev开发环境、test测试环境、prod生产环境。如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢?


此时就需要Data IdGroupNamespace这三者了。类似Java里面的package名和类名,最外层的namespace是可以用于区分部署环境的,GroupDataID逻辑上区分两个目标对象。

默认情况:Namespace=publicGroup=DEFAULT_GROUP,默认ClusterDEFAULTData Id Group NamespaceNamespace类似于Java中的某个项目、某个微服务模块;Group类似于当前Java项目的某个包;Data Id类似于Java当前Java项目的某个包下的某个类。


下面先说一下Data Id的配置方案,对应yml中的spring.profiles.active


首先在Nacos的配置列表中再新建一个配置文件,分组和刚才那个一样,都是默认分组。


这里,我们激活test测试环境。它读取到的将会是 nacos-config-client-test.yaml


下面再说一下Group的方案配置,对应yml中的group

仍然是新建两个配置文件,这次不再是默认分组,它们俩分别属于两个不同的组。


这里通过yml中的group标签来确定到哪个组中寻找对应的配置文件。

此时找到的将是:nacos-config-client-info.yaml,因为是TEST_GROUP组中的info.yaml配置文件。


下面再说一下Namespace的方案配置,对应yml中的namespace

首先找到命名空间,之前没有新建过,所以一直使用的Nacos默认的public命名空间。现在新建:dev命名空间、test命名空间。


这里通过yml配置,找到的将是:指定命名空间下的DEV_GROUP分组中的nacos-config-client-dev.yaml配置文件。


dev这个命名空间下,新建三个配置文件,它们三个分别属于不同的分组(默认分组、DEVTEST

相关文章
|
2月前
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
364 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
2月前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
273 17
|
3月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
66 5
|
5月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
21天前
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
|
2月前
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
【SpringCloud Alibaba系列】Dubbo高级特性篇
|
2月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
2月前
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
2月前
|
SpringCloudAlibaba Dubbo Java
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
【SpringCloud Alibaba系列】Dubbo基础入门篇
|
1月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
285 7