Spring Cloud: Nacos

Nacos

        Nacos是阿里巴巴开源的一个服务发现,配置管理和服务管理平台。只要用于分布式系统中的微服务注册,发现和配置管理,nacos是一个注册中心的组件

官方仓库:https://nacos.io/

Nacos的下载

Releases · alibaba/nacos

在官网中下载压缩包到本地

windows下载

把压缩包解压到本地,将startup.cmd文件中的配置改为单机模式

将MOOE设置为standalone

 

打开startup.cmd,界面为这样时,启动成功

 访问 http://127.0.0.1:8848/nacos

 

Linux下载

直接将你在官网上下载好的压缩包拖入到Xshell中,加载完毕后进行解压

通过这个命令进行解压

unzip nacos-server-2.2.3.zip

解压后输入这个命令开启Nacos单机模式

 bash startup.sh -m standalone

 进入nacos文件的bin路径中,执行命令,开启Nacos,出现这个界面,代表Nacos的单机模式启动成功

访问自己的IP+端口号/nacos 进行访问

 

Nacos的使用

Nacos和Eureka的区别就是,Eureka需要自己搭建一个服务,Nacos不用自己搭建服务,组件已经准备好了,只需要启动就行了

将Nacos引入自己的项目,首先引入Nacos的依赖

<properties><spring-cloud-alibaba.version>2022.0.0.0-RC2</spring-cloud-alibaba.version></properties><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency>

 注意:再父工程的pom文件中的<dependencyManagement>中引入Spring Cloud Alibaba的依赖

再分别再子项目中引入依赖

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

再引入Loadbalancer依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>

修改自己的配置文件

将两个子系统同时启动

观察Nacos,发现两个服务都已经注册再Nacos上

 

启动多个服务,测试负载均衡

 

我们可以多次的访问order-service中的接口,观察负载均衡 

 

可以发现这三个实例访问分配的几乎差不多

当我们发现其中有一个节点上的性能很差的时候,我们可以对该节点进行下线

下线之后,再次请求节点,发现没有服务进行请求了

 

配置权重

将请求均匀分配到多个服务器上,从而避免单个服务器过载

注:由于SpringCloudLoadBalancer具有自带的负载均衡 ,所以不支持Nacos的负载均衡策略,所以需要我们自己开启Nacos的负载均衡策略

 

同集群优先访问

 

 给实例配置集群名称

 

Nacos健康检查

 

Nacos服务实例类型

临时实例:如果实例宕机超过一定的时间,就会自动的将实例删除

非临时实例:就算是实例宕机,也不会从服务列表中删除

Nacos环境隔离

 创建好namespace,就可以对文件配置

Nacos配置中⼼ 

由于多人开发时候,配置文件可能需要经常修改,使用同一个配置文件容易冲突,配置中⼼就是对这些配置项进⾏统⼀管理.通过配置中⼼,可以集中查看,修改和删除配置,⽆需再逐个 修改配置⽂件.提⾼效率的同时,也降低了出错的⻛险

需要引入Nacos Config依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- SpringCloud 2020.*之后版本需要引⼊bootstrap--> 
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

进行配置 

 

访问这个接口 

@RequestMapping("/config")
@RefreshScope
@RestController
public class NacosController {@Value("${nacos.test.num}")private Integer num;@RequestMapping("/get")public Integer get(){return num;}
}

 

 

Data Id 

 Data Id的完整格式

 ${prefix}-${spring.profiles.active}.${file-extension}

文件的优先级:product-service-dev.properties> product-service.properties>product service 

Nacos与Eureka的区别‘

Nacos除了服务发现和注册之外,还提供了配置中⼼,流量管理和DNS服务等功能

Eureka遵循AP原则

Nacos根据配置识别CP或者AP模式.如果注册Nacos的Client的节点是临时节点,那么Nacos对这个 Client节点的效果就是AP,反之是CP.AP和CP可以同时混合存在。

Eureka:基于拉模式.EurekaClient会定期从Server拉取服务信息,有缓存,默认每30秒拉取⼀次. Nacos:基于推送模式.服务列表有变化时实时推送给订阅者,服务端和客⼾端保持⼼跳连接

希望能对大家有所帮助!!!!

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

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

相关文章

Linux下的c/c++开发之操作mysql数据库

libmysqlclient-dev介绍&#xff08;Linux 下的 Mysql C/C 开发包&#xff09; libmysqlclient-dev 是一个开发包&#xff0c;在Linux环境下为使用 MySQL C API 进行开发的c/c程序员提供头文件&#xff08;如 mysql.h&#xff09;和静态库/动态库的链接信息&#xff08;如 lib…

Java EE(Spring+Spring MVC+MyBatis)从入门到精通企业级应用开发教程——1初识MyBatis框架

1、MyBatis工作原理 MyBatis操作数据库流程分为8个步骤&#xff0c;具体介绍如下&#xff1a; &#xff08;1&#xff09;MyBatis读取核心配置文件mybatis-config.xml mybatis-config.xml核心配置文件主要配置了MyBatis的运行环境等信息。 &#xff08;2&#xff09;加载映射…

【许可证】Open Source Licenses

长期更新 扩展&#xff1a;shield.io装饰 开源许可证&#xff08;Open Source Licenses&#xff09;有很多种&#xff0c;每种都有不同的授权和限制&#xff0c;适用于不同目的。 默认的ISC&#x1f7f0;MIT License是否可商用是否要求开源衍生项目是否必须署名是否有专利授权…

ZooKeeper工作机制与应用场景

目录 1.1、概述1.2、选举机制1.2.1、选举触发条件1.2.2、选举规则1.2.3、选举过程详解 1.3、数据同步机制1.3.1、正常同步1.3.2、宕机同步 1.4、客户端常用命令1.5、应用场景1.5.1、配置管理1.5.2、命令服务1.5.3、分布式锁服务1.5.4、集群管理1.5.5、分布式ID1.5.6、分布式协调…

前端面经-VUE3篇(四)--pinia篇-基本使用、store、state、getter、action、插件

一、基本使用 1、什么是 Pinia&#xff1f; Pinia 是 Vue.js 的官方状态管理库&#xff0c;是 Vuex 的“升级版”。它专为 Vue 3 和 Composition API 设计&#xff0c;用于管理多个组件之间共享的数据&#xff08;也叫“全局状态”&#xff09;。 2、为什么需要状态管理库&a…

数据结构之图的遍历

图的遍历 图的遍历目的是访问图的每一个顶点恰好一次,&#xff0c;同时访问图中每条边恰好一 次。 对于无向图&#xff0c;常见的遍历方式有深度优先遍历&#xff08;Depth-First Search, DFS&#xff09; 和广度优先遍历&#xff08;Breadth-First Search, BFS&#xff09;。…

Ubuntu 第11章 网络管理_常用的网络配置命令

为了管理网络&#xff0c;Linux提供了许多非常有用的网络管理命令。利用这些命令&#xff0c;一方面可以有效地管理网络&#xff0c;另一方面出现网络故障时&#xff0c;可以快速进行诊断。本节将对Ubuntu提供的网络管理命令进行介绍。 11.2.1 ifconfig命令 关于ifconfig命令&…

Qt解决自定义窗口样式不生效问题

方法一&#xff1a; this->setAttribute(Qt::WA_StyledBackground, true); 方法二&#xff1a; 将类继承QWidget 改成继承 QFrame class MyWidget : public QFrame {} 方法三&#xff1a;重新实现QWidget的paintEvent函数时&#xff0c;使用QStylePainter绘制。 void p…

HNUST湖南科技大学-软件测试期中复习考点(保命版)

使用说明&#xff1a;本复习考点仅用于及格保命。软件测试和其他专业课不太一样&#xff0c;记忆的太多了&#xff0c;只能说考试的时候&#xff0c;想到啥就写啥&#xff0c;多写一点&#xff01;多写一点&#xff01;多写一点&#xff01;&#xff08;重要事情说三遍&#xf…

ES6 知识点整理

一、变量声明&#xff1a;var、let、const 的区别 作用域 var&#xff1a;函数作用域&#xff08;函数内有效&#xff09;。let/const&#xff1a;块级作用域&#xff08;{} 内有效&#xff0c;如 if、for&#xff09;。 变量提升 var 会提升变量到作用域顶部&#xff08;值为…

分布式爬虫去重:Python + Redis实现高效URL去重

1. 引言 在互联网数据采集&#xff08;爬虫&#xff09;过程中&#xff0c;URL去重是一个关键问题。如果不对URL进行去重&#xff0c;爬虫可能会重复抓取相同页面&#xff0c;导致资源浪费、数据冗余&#xff0c;甚至触发目标网站的反爬机制。 对于单机爬虫&#xff0c;可以使…

C# WPF 颜色拾取器

x:Name=Color Picker 语言:C# WPF 下载:https://download.csdn.net/download/polloo2012/90780640 主界面 颜色库 关于我们 颜色拾取器是一种能够帮助用户获取颜色信息,并进行颜色选择、识别和调整的工具,以下将从其常见类型、使用场景及部分软件工具这几个维度展开介绍…

Git 使用的全流程以及SourceTree工具的使用操作和忽略文件的配置

1. 安装 Git 要使用 Git&#xff0c;首先得在你的系统上安装它。你可以按照不同操作系统的安装指南来操作&#xff1a; Windows&#xff1a;访问 Git 官方下载页面&#xff0c;下载安装程序并运行。 macOS&#xff1a;可以使用 Homebrew 来安装&#xff0c;命令为 brew inst…

《深入理解Linux网络》笔记

《深入理解Linux网络》笔记 前言参考 前言 前段时间看了《深入理解Linux网络》这本书&#xff0c;虽然有些地方有以代码充篇幅的嫌疑&#xff0c;但总体来说还是值得一看的。在这里简单记录一下笔记&#xff0c;记录下对网络新的理解。 内核是如果接受网络包的&#xff1f; 如…

数仓-可累计,半累加,不可累加指标,是什么,举例说明及解决方案

目录 1. 可累计指标定义&#xff1a;举例&#xff1a;解决方案&#xff1a; 2. 半累加指标定义&#xff1a;举例&#xff1a;解决方案&#xff1a; 3. 不可累加指标定义&#xff1a;举例&#xff1a;解决方案&#xff1a; 4. 总结对比5. 实际场景中的注意事项 这是数据仓库设计…

NestJS 的核心构建块有哪些?请简要描述它们的作用(例如,Modules, Controllers, Providers)

NestJS 核心构建块解析&#xff08;Modules、Controllers、Providers&#xff09; NestJS 是一个基于 TypeScript 的渐进式 Node.js 框架&#xff0c;核心设计借鉴了 Angular 的模块化思想。下面从实际开发角度解析它的三大核心构建块&#xff0c;并附代码示例和避坑指南。 一…

vue2 上传pdf,拖拽盖章,下载图片

效果图片&#xff1a; 不多废话上代码&#xff1a; <template><div class"pdf-stamp" onbeforecopyreturn false onselectdocument.selection.empty() ondragstartreturn false onselectstart return false ><div class"scroll-box" scro…

理性地倾听与表达:检索算法的语言学改进

论文标题 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 论文地址 https://arxiv.org/pdf/2505.03676 代码地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎萨克雷大学&#xff0c;索邦大学&#xff…

MySQL及线程关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗&#xff1f; 2.什么是线程死锁&#xff1f;死锁相关面试题 2.1 什么是死锁&#xff1a; 2.2 形成死锁的四个必要条件是什么&#xff1f; 2.3 如何避免线程死锁&#xff1f; 3. MySQL 怎么排查死锁问题&#xff1f; 4.Java线上死锁问题如…

【Reality Capture 】Reality Capture1.5中文版安装教程(附安装包下载)

文章目录 一、Reality Capture1.5中文版安装教程二、拷贝中文补丁三、Reality Capture1.5中文版下载地址一、Reality Capture1.5中文版安装教程 1. Reality Capture v1.4.0汉化版安装包下载并解压 2. 运行EpicInstaller-15.17.1-4a91a118786f4c2aa3c0093b23f83863.msi 3. 更改…