微服务_Nacos

news2025/2/1 14:04:41

简介

Nacos(全称为“动态服务发现、配置和服务管理平台”)是阿里巴巴开源的一款云原生服务发现和配置管理平台,支持多种语言和多种环境,包括Kubernetes、Docker、Spring Cloud等常见的云原生环境。它提供了服务发现、配置管理、服务治理和流量管理等功能,使得微服务系统的构建和管理更加便捷。Nacos的特点是能够快速定位服务实例,动态管理服务,实时查看服务状态,实时监控服务流量,提升服务的可用性和稳定性。支持CP也支持AP
对应Spring Cloud中的Eureka(服务注册与发现) + Config + Bus(自动刷新配置)
nacos_arch.jpg

什么是配置中心

应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等。

如果项目需要更新新功能(二次发版),修改配置非常麻烦,因此在微服务中引入配置中心

特点

  • 配置是独立于程序的只读变量
    配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置

  • 配置伴随应用的整个生命周期
    配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。比如:启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等。

  • 配置可以有多种加载方式
    常见的有程序内部hard code ,配置文件,环境变量,启动参数,基于数据库等

  • 配置需要治理
    同一份程序在不同的环境(开发测试生产’)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置

安装与配置简介

在官网看文档安装

修改conf/appliction.properties,改数据库配置,设置保存配置的数据库

logs在配置文件中的{BASEDIR}

sh脚本直接就后台运行

用法

引入依赖

<!-- Nacos -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>
 

client端配置(项目模块)

在bootstrap.propertis/yml文件中配置
(bootstrap比application.文件加载的更早,在父环境中就加载)

配置本服务运行的端口号、自己作为spring应用的名称、环境(会用于在nacos匹配配置文件)

以及nacos相关配置

# Tomcat
server: 
  port: 9200

# Spring
spring: 
  application:
    # 应用名称
    name: ruoyi-auth
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

共享配置是所有服务共享的配置文件,在本例中,会在nacos中心匹配到application-dev.yml文件。

如果上面因没有配置环境导致${spring.profiles.active}取不到值,nacos会自动忽视中间那个“-”,匹配applicaion.yml,不用担心会发生错误。

nacos配置中心配置

新建数据集(DataId),基本每个dataId对应一个数据文件.

然后我们可以全当在本地写好配置文件一样直接使用,用法没有改变,可以通过 @Value(“${配置项}”)将配置的值注入

  • spring的原理是读取到上下文了么

通常会在Controller里边用@Value取出使用,但是你要是想改变他,就要重新改代码,打包,部署,十分麻烦,我们需要让配置文件的值变得动起来,Nacos也采用了Spring Cloud原生注解@RefreshScope实现配置自动更新。(注解在类上)

  • 父项目pom那个client是啥?
  • spring父application环境是父项目的么?如果不是maven项目会怎么样?
  • 在启动的地方有个work目录

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

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

相关文章

MFC的定义和实际操作方法

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天从另一个角度来看一下MFC。 完整的应用一般由四个类组成&#xff1a;CWinApp应用类&#xff0c;CFrameWnd窗口框架类&#xff0c;CDocument文档类&#xff0c;CView视类 过程&#xff1a;CWinApp创建CF…

算法刷题-链表-反转链表

反转链表 206.反转链表思路C代码双指针法递归法其他语言版本使用虚拟头结点解决链表翻转使用栈解决反转链表的问题 反转链表的写法很简单&#xff0c;一些同学甚至可以背下来但过一阵就忘了该咋写&#xff0c;主要是因为没有理解真正的反转过程。 206.反转链表 力扣题目链接 …

【Java基础篇】方法的使用(方法的使用以及形参实参的关系)

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a;Java.SE&#xff0c;本专栏主要讲解运算符&#xff0c;程序逻辑控制&#xff0c;方法的使用&…

【线程安全问题】线程互斥与线程同步技术

在达内Windows/Win32编程专栏中&#xff0c;我们已经介绍过线程同步与线程互斥技术&#xff0c;包括了原子锁&#xff0c;互斥体&#xff0c;事件和信号量。但是与海哥讲的线程同步与线程互斥技术不太一样&#xff0c;这篇文章来带领大家学习线程同步与线程互斥技术&#xff0c…

新手运行bert,pycharm不识别conda安装的python环境

提示No module named numpy/tensorflow conda list是有这些包的 pycharm识别不出interpreter的package 改成scripts下的python.exe就能识别出numpy和tensorflow了 改完interpreter之后出现过importerror: dll load failed&#xff0c;在environment variables里加了这些就不报错…

06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布

我们先看看画布的魅力&#xff1a; 初始画布 canvas默认是宽300px&#xff0c;高150px; 绘制步骤 1.定义一个id <canvas id"canvasOne" width"300" height"300"></canvas> 2.获取canvas对象 var canvasObj document.getEleme…

程序开发体系架构(C/S与B/S)

应用最多的网络应用程序开发体系结构可分为两种&#xff0c;一种是基于客户端/服务器&#xff08;Client/Server&#xff0c;C/S&#xff09;结构&#xff0c;另一种是基于浏览器/服务器&#xff08;Browser/Server&#xff0c;B/S&#xff09;架构 C/S体系结构 C/S是指在开发…

性能测试报告模板

xxx系统 性能测试报告 版本号&#xff1a;V1.0 2023年1月9日 1 概述 1.1 测试目的 1.2 测试依据 2 测试范围 3 测试方法 3.1 测试工具 3.2 并发用户策略 3.3 性能指标监控 3.4 性能测试策略 3.5 测试步骤简述 4 测试目标 4.1 系统处理能力 4.2 操作响应时间 4…

凸优化系列——无约束优化问题

最小二乘问题: 采用适当的方法可将约束优化问题转换为无约束优化问题; 最优解的定义&#xff1a; 无约束优化问题的最优性条件 需要说明的是&#xff0c;由于二阶梯度可以取0&#xff0c;我们由一元函数的知识可以知道&#xff0c;它是必要条件而非充分条件&#xff0c;当把等…

一款自动生成CRUD代码的自定义Starter

一个基础web的spring-boot-starter框架 web-spring-boot-starter Gitee仓库链接&#xff1a;https://gitee.com/suhuamo/web-spring-boot-starter Github仓库链接&#xff1a;https://github.com/suhuamo/web-spring-boot-starter 前言 对应一个web项目的开发&#xff0c;数据…

硬件设计电源系列文章-DCDC转换器布局设计

文章目录 概要 整体架构流程 技术名词解释 1.开关电源PCB布局要点 2.输入电容的放置 3.二极管的放置 4.散热孔的放置 5.反馈路径的走线 小结 概要 提示&#xff1a;这里可以添加技术概要 例如&#xff1a; 本文主要DCDC转换器布局方面的知识。 整体架构流程 提示&#xf…

Dockerfile构建镜像与实战

一、基于Dockerfile创建镜像 1&#xff09;联合文件系统(UnionFS) UnionFS(联合文件系统) : Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统&#xff0c;它支持对文件系统的修改作为一次提交来一层层的叠加&#xff0c;同时可以将不同目录挂载到同一个虚拟文…

Go语言并发之Select多路选择操作符

1、Go语言并发之Select多路选择操作符 select 是类 UNIX 系统提供的一个多路复用系统 API&#xff0c;Go 语言借用多路复用的概念&#xff0c;提供了 select 关键字&#xff0c;用 于多路监听多个通道。当监听的通道没有状态是可读或可写的&#xff0c;select 是阻塞的&#…

NoSQLBooster 8.0.11 for MongoDB

MongoDB最智能的IDE。 NoSQLBooster 是适用于 MongoDB Server 3.6-6.0 的跨平台 GUI 工具&#xff0c;它提供了内置的 MongoDB 脚本调试器、全面的服务器监控工具、链接流畅查询、SQL 查询、查询代码生成器、任务调度、ES2020 支持和高级 IntelliSense 体验。 嵌入式MongoDB S…

YUM源安装,在线YUM,本地YUM

YUM源 一、定义 YUM&#xff08;全称为 Yellow dog Updater, Modified&#xff09;是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的服务器自动下载RPM包并且安装&#xff0c;**可以自动处理依赖性关系&…

【ChatGPT散文篇】ChatGPT-清华大学的讲座要点

刚听了清华大学关于ChatGPT的讲座&#xff0c;总结几个要点: 1、AI有可能成为地球上最初的硅基生命。 2、AI已迭代至博士研究生的智力水平。 3、以后将不存在学科和专业的概念&#xff0c;也不存在文科理科的区分&#xff0c;将是学科大融合。因为一个文科生哪怕不懂代码&a…

【Elasticsearch】结合Postman/ApiPost 快速入门

相比于MySQL那种关系型数据库&#xff0c;是采用正排索引&#xff0c;也就是根据主键去找其对应的行数据。而Elasticsearch这个NoSQL&#xff0c;是采用倒排索引&#xff0c;根据输入的某值返回其它整行的数据。而Elaticsearch是采用RESTful风格的数据库访问&#xff0c;以下就…

Docker 概述与命令操作

一、Docker 概述 1、Docker的概念 • Docker是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵循了apache2.0协议开源 • Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的“虚拟机” • Docker 的容器技术可以在一台主机上轻松为任何应用创建一…

IDEA 集成Maven

一. 下载IDEA编辑器 下载地址&#xff1a;Download IntelliJ IDEA – The Leading Java and Kotlin IDE 选中免费开源的社区版本 创建桌面图标和添加安装路径到系统变量&#xff0c;其他的默认安装即可。 二. 配置Maven环境 分为局部配置和全局配置 1. 局部配置maven环境 …

编译tolua——4、更新luaJit

目录 1、编译工具和环境说明 2、基础编译tolua 3、以pbc为例子&#xff0c;添加第三方库 4、更新luaJit 大家好&#xff0c;我是阿赵。 用tolua做项目的朋友们&#xff0c;在这两年肯定会遇到过一个问题&#xff0c;就是现在的安卓应用市场比如谷歌市场&#xff0c;要求上传的…