SpringCloud Nacos 注册配置中心

news2025/2/24 18:25:25

前言

在微服务架构中,注册中心是核心的基础服务之一。相信不少同学都用过 Dubbo 这个流行分布式框架,很久之前微服务还没这么盛行,Dubbo就提供了比较完善的服务治理功能,而服务治理的实现主要依靠的就是注册中心。

许多同学接触更多的可能Zookeeper,那会应该是Dubbo服务的标配,直到现在应该也有不少公司在使用Dubbo+Zookeeper的服务治理模式。

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

注册中心

阿里巴巴 Nacos 新版本支持权限控制,开发者可以通过创建用户角色关系对服务接入进行控制。

在这里插入图片描述
网关 pom.xml 引入:

<dependencies>
         <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
</dependencies>

注册中心配置:

server:
  port: 8080
spring:
  profiles:
    active: dev
  application:
    name: tools-gateway
  cloud:
    nacos:
      config:
        namespace: tools # 用于进行租户粒度的配置隔离
        group: tools-${spring.profiles.active}
        server-addr: 127.0.0.1:8848
        username: tools # 支持账号密码认证
        password: 123456
      discovery:
        namespace: tools # 用于进行租户粒度的配置隔离
        group: tools-${spring.profiles.active}
        server-addr: 127.0.0.1:8848
        username: tools # 支持账号密码认证
        password: 123456
    gateway:
      routes:
        - id: sys
          uri: lb://tools-sys
          predicates:
            - Path=/api/sys/**
          filters:
            - StripPrefix=2

系统管理配置文件 bootstrap.yml:

erver:
  port: 8082
spring:
  profiles:
    active: dev
  application:
    name: tools-sys
  cloud:
    nacos:
      config:
        namespace: tools
        group: tools-${spring.profiles.active}
        server-addr: 127.0.0.1:8848
        username: tools
        password: 123456
      discovery:
        namespace: tools
        group: tools-${spring.profiles.active}
        server-addr: 127.0.0.1:8848
        username: tools
        password: 123456

配置中心

Nacos不仅提供了动态服务发现功能,还实现了配置中心管理,这样我们就无需再引入Spring Cloud 家族的 Spring Cloud Config。

服务拆分以后也就意味着会产生众多相同的配置参数文件,比如 Redis、DataSource以及文件存储配置等等。这时候我们可以通过Nacos的配置管理来实现配置参数共享。

在这里插入图片描述
在这里插入图片描述
阿里巴巴 Nacos Config 目前提供了三种拉取配置的方式:

A: 通过 spring.cloud.nacos.config.shared-dataids 支持多个共享 Data Id 的配置
B: 通过 spring.cloud.nacos.config.ext-config[n].data-id 的方式支持多个扩展 Data Id 的配置
C: 通过内部相关规则(应用名、应用名+ Profile )自动生成相关的 Data Id 配置
当三种方式共同使用时,他们的一个优先级关系是:A < B < C

小结

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。

Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端和服务器上的概念与 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 阶段,配置被加载到 Spring 环境中。当应用程序通过部署管道从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。

阿里巴巴 Nacos还是很香的,新的版本不再强依赖MySql数据库,而是内嵌存储数据源(Apache Derby),用户能够使用命令行参数配置的方式,随意使用这两种数据存储模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/522343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache Kafka - 生产者内存优化注意事项

文章目录 1. 调优内存池参数2. 限制客户端生产速率3. 减小单条消息大小4. 监控生产者内存和性能5. 评估topic的partition分布6. 增加更多生产者实例7. Kafka升级和更强劲的硬件小结 1. 调优内存池参数 增大batchSize和linger ms,适当延长消息在内存池的最大延迟,减少发送次数。…

【C++初阶】第十二篇:priority_queue的使用与模拟实现

文章目录 priority_queue的使用priority_queue的介绍priority_queue的定义方式priority_queue各个接口的使用 仿函数代码样例使用场景&#xff08;示例&#xff09; priority_queue的模拟实现堆的向上调整算法堆的向下调整算法priority_queue的模拟实现 总结 priority_queue的使…

redis:基于 Streams 的消息队列

前言 Redis 5.0 及 5.0 以后的版本提供的Streams 是专门为消息队列设计的数据类型&#xff0c;它提供了丰富的消息队列操作命令。 消息队列 Streams 操作 XADD&#xff1a;插入消息&#xff0c;保证有序&#xff0c;可以自动生成全局唯一 ID&#xff1b; 名称为 mqstream 的…

【第七章:输入输出系统】

目录 知识框架No.0 引言No.1 输入输出系统一、基本概念二、I/O控制方式1、主机如何与I/O设备进行交互?2、CPU是如何通过I/O接口与外设交互的3、如何判断读入的数据有没有被输入完成呢&#xff1f;4、对于快速I/o设备&#xff0c;如“磁盘”&#xff0c;每准备好一个字就给CPu发…

【C语言】操作符详解(下)

操作符详解 1.条件操作符2. 逗号表达式3.下标引用&#xff0c;函数调用和结构体成员4.表达式求值4.1隐式类型转换4.2算术转换 5.操作符的属性 所属专栏&#xff1a;C语言 博主首页&#xff1a;初阳785 代码托管&#xff1a;chuyang785 感谢大家的支持&#xff0c;您的点赞和关注…

原生js手动实现一个多级树状菜单效果(高度可过渡变化) + 模拟el-menu组件实现(简单版)

文章目录 学习链接效果图代码要点 简单模拟el-menu实现TestTree.vueMenu.vueSubMenu.vue 学习链接 vue实现折叠展开收缩动画 - 自己的链接 elment-ui/plus不定高度容器收缩折叠动画组件 - 自己的链接 Vue transition 折叠类动画自动获取隐藏层高度以及手风琴效果实现 vue t…

Sqoop: Hadoop数据传输的利器【Sqoop实战】【上进小菜猪大数据系列】

我是上进小菜猪&#xff0c;沈工大软件工程专业&#xff0c;爱好敲代码&#xff0c;持续输出干货&#xff0c;欢迎关注。 Sqoop: Hadoop数据传输的利器, 在大数据领域&#xff0c;数据的传输和集成是至关重要的任务之一。Sqoop&#xff08;SQL to Hadoop&#xff09;作为Apache…

ChatGPT的前世今生,到如今AI领域的竞争格局,本文带你一路回看!

73年前&#xff0c;“机器思维”的概念第一次被计算机科学之父艾伦图灵&#xff08;Alan Turing&#xff09;提出&#xff0c;从此&#xff0c;通过图灵测试成为了人类在AI领域为之奋斗的里程碑目标。 73年后的今天&#xff0c;在AI历经了数十年的不断进化、迭代后&#xff0c…

【第二章:数据的表示和运算】

目录 知识框架No.0 引言No.1 数制与编码一、进位计数制及其相互转换二、BCD码三、无符号的整数在计算机内部表示和运算1、表示2、加法、减法实现 四、带符号的整数在计算机内部表示和运算1、表示1.1、原码表示1.2、原码形式实现加减法运算不行1.3 补码表示1.4 补码实现加法运算…

分享一个图片展示特效

先上效果图&#xff1a; 备注&#xff1a;这个效果图太大了&#xff0c;压缩了一下效果有点不咋好看。感兴趣同学们可以自己运行代码看一下&#xff0c;保证不会失望~ 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta cha…

mysql数据库的表操作 --3

表操作 3.1&#xff1a;创建表 语法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明&#xff1a; field 表示列名 datatype 表示列的…

Java 数组与List转换

int[] 与 List<Integer> 转换 刷题常见 int[] 转 List<Integer> // int[] 转 List<Integer> int[] arr {1, 2, 3, 4, 5}; List<Integer> list Arrays.stream(arr).boxed().collect(Collectors.toList());解释&#xff1a; Arrays.stream(arr) /…

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 部署后解决跨域的问题

基于Ant DesignPro Vue SpringBoot 前后端分离 - 部署后解决跨域的问题 通过Ant DesignPro Vue SpringBoot 搭建的后台管理系统后&#xff0c;实现了前后端分离&#xff0c;并实现了登录认证&#xff0c;认证成功后返回该用户相应权限范围内可见的菜单&#xff1b;但时将服务…

剑指 Offer II 105. 岛屿的最大面积代码注释

题目&#xff1a; 给定一个由 0 和 1 组成的非空二维数组 grid &#xff0c;用来表示海洋岛屿地图。 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表…

第一章 集合框架

文章目录 什么是集合框架集合接口Set和List的区别 集合实现类&#xff08;集合类&#xff09;集合算法 什么是集合框架 官方教程 Java 集合框架 Java Collection Framework &#xff0c;又被称为容器container&#xff0c;是定义在java.util包下的一组接口 interfaces和其实现…

【华为HCIP | 高级网络工程师】刷题日记(8)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生 &#x1f43b;‍❄️个人主页&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;落798. &#x1f54a;️系列专栏&#xff1a;零基础学java ----- 重识c语言 ---- 计算机网络 &#x1f413;每日一…

68.建立手风琴组件第一部分

本节目标 使用的文件 本次使用的文件可私信我获取&#xff0c;本次就只有两张图片 ● 我们导入两个照片至我们的项目文件夹&#xff0c;并新建一个HTML文件 ● 之后我们输入感叹号&#xff0c;让他自动为什么生成初始代码 ● 之后我们修改下title&#xff0c;导入字体、…

springboot+vue家具网站(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的家具网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&#…

kafka之消费者进阶

一、几个概念 1. 消费者组 消费者组&#xff1a;一个消费者组包含多个消费者。同一个消费组的消费者&#xff0c;分别消费不同的partition&#xff0c;便于加快消费。 kafka约定在一个消费者组中&#xff0c;对于同一个topic&#xff0c;每个consumer会分配不同partition&am…

Unity搭建VR全景图

VR全景图片显示和相机旋转 ** 如果需要内置面材质球文件&#xff0c;可以私信下我 ** 场景构建 创建项目后拖进所需文件 文件有内置面材质球、图片等 创建文件 拖拽内置面材质球进入场景&#xff0c;并设置相机在球内部 再创建一个材质球&#xff0c;命名和图片相同 选…