本文为博主原创,转载请注明出处:

  在分布式微服务框架中,现在都流行使用 nacos 作为分布式框架的注册中心与配置中心。当我们搭建一套spring boot 框架的时候,默认会将配置文件

放在 resources 的配置目录下有bootstrap.yml 及application-dev.properties 配置文件进行管理,包括数据库配置,端口配置等等。

  现在使用 nacos 便可实现服务注册 与 配置管理的功能。

  nacos 提供的中文网址连接如下:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html

  具体步骤如下:

    1.在项目中引入nacos 以及spring boot web启动的相关的依赖

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent> <properties>
<java.version>1.8</java.version>
<spring-boot.version>2.2.8.RELEASE</spring-boot.version>
<spring-cloud.version>2.2.2.RELEASE</spring-cloud.version>
<spring-nacos.version>2.2.1.RELEASE</spring-nacos.version>
</properties> <dependencies>
<!--web启动-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${spring-nacos.version}</version>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${spring-nacos.version}</version>
</dependency> </dependencies>

  2.在项目配置 bootstrap.yml 文件中配置配置中心

  其中有一个默认组group的属性,如果不配其默认值为 DEFAULT_GROUP

spring:
application:
# 服务名称尽量用-,不要用_,不要用特殊字符
name: test2
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml

  3.本地安装并启动 nacos

    nacos 默认的用户名和密码都为 nacos 。 在nacos 管理台进行配置中心的配置:

    配置管理 ---〉配置列表 ---- 〉点击加号 进行创建

点击加号进行配置  

  dataId 为项目框架中 bootstrap.yml 中的 spring.application.name 的配置值。

之于项目中 为什么要配置 bootstrap.yml 中配置application.name  以及项目启动如何匹配对应的配置文件列表,其缘由在nacos 中文网址给了说明:

进行启动,通过观察项目启动的端口号判断是否正确使用配置中心的配置,若未正确加载,则项目启动成功的端口号则为默认的8080,

若正确加载,则项目启动的端口号为配置中心的端口号:

  4.配置中心使用命名空间区分环境

    spring boot 项目中,常使用 application-dev.properties, application-test.properties, application-prd.properties等方式指定不同环境下的配置文件。

  nacos配置中心可以创建命名空间,区分不同的环境类型。

创建之后,会在配置列表看到 dev 的 tab 列表

  在列表中创建对应的配置,我这边创建的简单的配置如下:

  在项目代码的配置文件中指定命名空间以及 环境类型就可加载使用,在bootstrap.yaml中配置如下:

  namespace 的值为nacos 中命名空间的ID的值

spring:
application:
# 服务名称尽量用-,不要用_,不要用特殊字符
name: test1
profiles:
active: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
group: DEFAULT_GROUP
namespace: 9f471483-5467-4077-81ae-b7ddb6cf2248

  本地项目启动加载配置,通过启动日志观察服务端口便可判断配置是否加载:

  

注意事项:

  1.在配置过程中,需要注意 pom中的 spring-boot-starter-parent 与  spring-boot-starter-web 两者的版本号相差不能太大,相差太大,容易导致启动报错,某些类 ClassNotFoundException等

  2.需要在项目的配置文件中指定项目名称

使用 nacos 搭建注册中心及配置中心的更多相关文章

  1. Spring cloud Alibaba Nacos服务注册发现和配置中心

    Nacos(官方网站:http://nacos.io)是一个易于使用的平台,旨在用于动态服务发现,配置和服务管理.它可以帮助您轻松构建云本机应用程序和微服务平台. Nacos = Eureka + c ...

  2. Spring Cloud+nacos+Feign,实现注册中心及配置中心

    写在前面 注册中心.配置中心的概念就不在这里解释了.发现服务原来一直用的是Eureka,因为这家伙闭源了,不爽.然后就发现了nacos,阿里巴巴的,好东西,一个搞定注册中心和配置中心.官网:https ...

  3. 学习一下 SpringCloud (六)-- 注册中心与配置中心 Nacos、网关 Gateway

    (1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...

  4. SpringCloudAlibaba注册中心与配置中心之利器Nacos实战与源码分析(上)

    不断踩坑并解决问题是每个程序员进阶到资深的必要经历并以此获得满足感,而不断阅读开源项目源码和总结思想是每个架构师成长最佳途径.本篇拉开SpringCloud Alibaba最新版本实战和原理序幕,以工 ...

  5. spring boot / cloud (十七) 快速搭建注册中心和配置中心

    spring boot / cloud (十七) 快速搭建注册中心和配置中心 本文将使用spring cloud的eureka和config server来搭建. 然后搭建的模式,有很多种,本文主要聊 ...

  6. 【十次方微服务后台开发】Day02:加密与JWT鉴权、微服务注册中心、配置中心、熔断器、网关、消息总线、部署与持续集成、容器管理与监控Rancher、influxDB、grafana

    一.密码加密与微服务鉴权JWT 1.BCrypt密码加密 Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用B ...

  7. Dubbo+Nacos做注册中心和配置中心

    项目结构 相关代码 EchoService public interface EchoService { String echo(String msg); } DefaultEchoService @ ...

  8. Nacos注册中心和配置中心流程原理

    一.Nacos注册中心 1.服务启动后---->服务注册原理 springCloud集成Nacos实现原理: 服务启动时,在spring-cloud-commons包下 spring.facto ...

  9. SpringCloudConfig与SpringCloudEureka 注册中心与配置中心高可用的意义

    所有的配置会缓存在本地,远程配置中心DOWN机,不影响本地使用,只是无法重新请求服务端获取配置的更新. 不管是注册中心的高可用,还是配置中心的高可用.本质上都是保证服务能注册上去或者能从配置中心获取配 ...

  10. 服务注册发现、配置中心集一体的 Spring Cloud Consul

    前面讲了 Eureka 和 Spring Cloud Config,今天介绍一个全能选手 「Consul」.它是 HashiCorp 公司推出,用于提供服务发现和服务配置的工具.用 go 语言开发,具 ...

随机推荐

  1. 87 GB 模型种子,GPT-4 缩小版,超越ChatGPT3.5,多平台在线体验

    瞬间爆火的Mixtral 8x7B 大家好,我是老章 最近风头最盛的大模型当属Mistral AI 发布的Mixtral 8x7B了,火爆程度压过Google的Gemini. 缘起是MistralAI ...

  2. C++ Qt开发:Charts折线图绘制详解

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts ...

  3. keycloak~从login-status-iframe页面总结如何跨域传值~续

    keycloak~从login-status-iframe相关文章,可阅读我的这两篇keycloak~从login-status-iframe页面总结如何跨域传值,keycloak~对接login-s ...

  4. JavaFx css样式(三)

    JavaFx css样式(三) JavaFX 从入门入门到入土系列 JavaFx css样式,前面我说过它类似html,他有css控制样式,不过最新的css标准并不支持,同时javafx的css样式都 ...

  5. 袋鼠云数栈UI5.0设计实战|B端表单这样设计,不仅美观还提效

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:大喜 相关文章:袋鼠云出品!数栈UI 5.0全新体验升级, ...

  6. 在线编辑Word——插入内容控件

    内容控件是可添加和自定义的以在模板.窗体和文档中使用的单个控件.Word中支持添加多种类型的控件用于不同文档的设计需求.本文,将通过在线编辑的方式展示如何在Word中插入内容控件,这里使用的在线编辑器 ...

  7. 【华为云技术分享】云容器引擎 CCE权限管理实践

    随着容器化的快速发展,大数据原有的分布式任务调度模式,正在被基于Kubernetes的技术架构所取代.CCE云容器引擎是华为云推出的支持Kubernetes社区原生应用和工具,应用级自动弹性伸缩,自动 ...

  8. 云原生数据库风起云涌,华为云GaussDB破浪前行

    摘要:云原生数据库,实现多云协同.混合云解决方案.边云协同等能力的数据库. Gartner预测,2021年云数据库在整个数据库市场中的占比将首次达到50%:2023年75%的数据库将基于云的技术来构建 ...

  9. SARIF在应用过程中对深层次需求的实现

    摘要:为了降低各种分析工具的结果汇总到通用工作流程中的成本和复杂性, 业界开始采用静态分析结果交换格式(Static Analysis Results Interchange Format (SARI ...

  10. VUE3/TS/TSX入门手册指北

    VUE3入门手册 vue3入门 首先 查看 官方文档:https://cn.vuejs.org/guide/quick-start.html 如果有vue2基础,速成课程:https://www.zh ...