Nacos注册中心

一、认识和安装Nacos

1.1、认识Nacos(那扣丝)

1.2、Nacos安装(Windows版安装)

     1.2.1、下载安装包

1.2.2、解压安装包

1.2.3、端口配置

1.2.4、启动Nacos注册中心

1.2.5、访问

1.3、Nacos安装(Linux版安装)

1.3.1、安装JDK

1.3.2、上传Nacos安装包

1.3.3、解压Nacos安装包

 1.3.4、端口配置

1.3.5、启动Nacos注册中心

1.4、Nacos的依赖

二、Nacos快速入门

三、Nacos服务分级存储模型

四、NacosRule负载均衡

五、Nacos服务实例的权重设置

六、Nacos和Eureka的区别

补充:如何成为非临时实例


一、认识和安装Nacos

1.1、认识Nacos(那扣丝)

        也就是说Nacos是Eureka的升级版,相比着Eureka功能更加丰富。

1.2、Nacos安装(Windows版安装)

     1.2.1、下载安装包

GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.https://github.com/alibaba/nacos

 

1.2.2、解压安装包

 

目录说明:

  • bin:启动脚本

  • conf:配置文件

1.2.3、端口配置

Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。

如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口:

 

1.2.4、启动Nacos注册中心

启动非常简单,进入bin目录,打开cmd结构如下:

然后执行命令即可:

  • windows命令:

startup.cmd -m standalone 

 执行后的效果如图:

1.2.5、访问

在浏览器输入地址:http://127.0.0.1:8848/nacos即可:(注意:端口号可以不是8848)

默认的账号和密码都是nacos,进入后:

1.3、Nacos安装(Linux版安装)

Linux或者Mac安装方式与Windows类似。

1.3.1、安装JDK

Nacos依赖于JDK运行,所以Linux上首先也需要安装JDK才行。

上传jdk安装包到Linux系统中(前面Linux笔记中有安装步骤):

上传到Linux系统中某个目录,例如:/usr/local/ 目录下

然后解压缩:

tar -xvf jdk-8u144-linux-x64.tar.gz

然后重命名为java

配置环境变量:

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

设置环境变量:

source /etc/profile

1.3.2、上传Nacos安装包

        还是和安装windows版的Nacos一样,先去官方找安装包,找到tar.gz的版本即可:

 然后将安装包保存到我们盘中之后上传到Linux服务器的某个目录,例如/usr/local/src目录下:

1.3.3、解压Nacos安装包

命令解压缩安装包:

tar -xvf nacos-server-1.4.1.tar.gz

然后删除安装包:

rm -rf nacos-server-1.4.1.tar.gz

目录中最终样式:

目录内部:

 1.3.4、端口配置

与windows版中类似

1.3.5、启动Nacos注册中心

在nacos/bin目录中,输入命令启动Nacos:

sh startup.sh -m standalone

1.4、Nacos的依赖

父工程:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

客户端:

<!-- nacos客户端依赖包 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

二、Nacos快速入门

       快速入门: 也就是说把每个微服务模块都注册到nacos注册中心中去。

        注意: 要先保证开启上面的nacos服务端。

         注意1:如果使用Nacos注册中心的话,记得看一下项目中是否配了eureka注册中心,并且也要先把nacos配置中心的坐标先给删掉(因为Nacos注册中心和eureka注册中心的意义是一样的,总不能配置两个注册中心吧)

        注意2: 注册nacos的时候,必须要在yml配置文件中配置服务名字(也就是application.name配置下的内容,必须配置,要不然就注册不到nacos上)

注意:这里我们刚才上面直到Nacos注册中心启动时服务器的端口号为8848,因此在服务消费者和服务提供者的yml配置文件中配置时注意端口号也要写8848相对应。 

代码演示如下所示:

1、

  <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

 如果刷新坐标时出现下面的错误的话,可以多刷新几下maven坐标即可:

2、把服务消费者接口模块项目和服务提供者接口模块项目pom.xml文件中的以前eureka坐标删除掉,添加导入Nacos注册中心的依赖坐标

        注:服务消费者和服务提供者两个项目中都要添加此坐标,并且要保证以前的eureka服务注册中心的依赖坐标删除了(因为nacos注册中心和eureka注册中心意义是一样的,但是不能搞两个注册中心吧,所以我们现在用nacos注册中心那么就要把eureka的删除掉)

3

最终导完坐标并且修改好yml配置之后,启动服务消费者和服务提供者服务器,那么服务消费者和服务提供者的服务器访问地址就成功的存放到Nacos注册中心上了:

 

 会发现nacos注册中心确实比下面的eureka注册中心清晰多了:

最终我们把服务消费者和服务提供者的服务器访问地址注册存放到nacos注册中心后,就可以注册发现了:

        也就是说我们现在nacos服务注册中心中已经存放了服务提供者的服务器访问地址了,那么我们服务消费者就可以在这个nacos服务注册中心中拉取这些存放的服务提供者的服务器访问地址了,拉取到后我们服务消费者就可以通过负载均衡轮循服务提供者的访问地址(多个)然后调用其服务提供者的开放接口了,最终就能拿到该服务提供者模块(如支付模块)的功能了,(这样也解决了硬编码问题),这就叫做服务发现。

补充:谷粒项目的注册方式

 坐标的话还是一样的,一个放在父工程pom坐标中,一个放在子工程中,唯一不同的区别就是yml的写法稍微变了一点,并且在启动类当中加了一个注解:

启动服务后会发现注册成功:

三、Nacos服务分级存储模型

注:要知道服务对应的是谁、实例对应的是谁、集群对应的是谁。

没有Nacos分级储存时的缺点:

 Nacos分级储存后:

代码演示Nacos服务分级储存:

 演示如下所示:

 

 

四、NacosRule负载均衡

        也就是说上面我们知道了用户功能模块服务(也就是服务提供者)的几个服务器访问地址已经分别放入到了ZZ机房和SH机房当中了,那么如果现在有一个服务消费者想要调用获取这个用户功能模块服务(服务提供者)的数据资源,那么这个服务消费者到底访问调用这个服务提供者的ZZ机房服务器访问地址呢还是访问SH机房中的服务器访问地址呢:

演示如下所示:

        首先我们也先把服务消费者的服务器访问地址也先放到ZZ机房当中去:

 

 

那么我们想,服务消费者的服务器访问地址也在ZZ机房当中,服务提供者的ZZ机房中也有两个服务器访问地址,那么如果这个服务消费者调用请求这个服务提供者的数据资源的时候,是不是就直接调用访问的是服务提供者ZZ机房(集群)当中的服务器访问地址呢(毕竟都在一个机房当中):

 

 会发现并不会因为服务消费者和服务提供者的服务器访问地址(实例)都在ZZ机房,服务消费者就只访问服务提供者所在ZZ机房的服务器访问地址(实例),会发现这个服务消费者也访问了这个服务提供者不在ZZ机房的服务器访问地址(实例)【也就是说也访问了服务提供者在SH的实例】,那么就有点不太好了,毕竟服务提供者在SH机房的实例和服务消费者在ZZ机房的实例太远了,那么再访问SH机房的实例的话就太浪费时间了,那么我们能不能就只让服务消费者的实例在ZZ机房时只访问服务提供者的实例也是只在ZZ机房的实例(服务器)呢,这样的话都在同一个机房内进行访问调用那么就不会在耗费时间了:

 

 解决当服务消费者的实例(也就是服务器访问地址)在ZZ机房时,先只让这个服务消费者调用访问服务提供者也在ZZ机房中的实例(也就是服务器访问地址):

        做法:只需要在服务消费者的配置文件中加上下面的负载均衡规则配置即可。

 

 

配置好之后:服务消费者再进行访问测试:

就会发现就不会再访问调用服务提供者SH机房中的实例了(服务器访问地址了):

会发现因为服务消费者的实例(服务器访问地址)在ZZ机房,配置好属性之后那么当访问调用的服务提供者的时候,就只调用访问服务提供者对应在ZZ机房中的几个实例了:

注意:上面访问服务提供者ZZ机房(集群)的实例(服务器)的时候,是通过随机分配的形式进行访问的,不是轮循

五、Nacos服务实例的权重设置

        注: 如果权重调为0的话,那么该服务器就不会再被访问到了(当我们维护系统的时候就可以调为0,也就是说不停机维护)

        也就是说我们上面知道,当服务消费者访问服务提供者ZZ集群中的实例(服务器)的时候,是通过随机的方式进行请求访问实例的:

怎么修改权重呢:比如说现在上面两个服务器当中,有一个服务器老化了不能被访问请求很多次,那么我们怎么降低那个服务器被访问的权重呢:

 

 

访问测试:

 

六、Nacos和Eureka的区别

1、Nacos与eureka的共同点分析:

        也就是说这些是相同的,注意服务器访问地址可以叫做实例。

2、Nacos与eureka的不同点分析:

        首先要先知道什么是临时实例和非临时实例(下面的服务器就是临时的):

 

补充:如何成为非临时实例

Nacos注册中心,全称为Dynamic Naming and Configuration Service,是一个动态命名和配置服务。它是以服务为核心的注册中心和配置中心。 在分布式项目中,Nacos充当了注册中心的角色。它提供了服务注册和发现的功能,使得不同的服务能够方便地注册到Nacos上,并通过Nacos进行服务的发现。同时,Nacos还提供了配置中心的功能,可以将配置信息集中管理,并实时推送给相关的服务。 相比于其他的注册中心组件,Nacos具有灵活性和易用性。它支持多种注册方式,包括基于HTTP/REST的注册方式、基于DNS的注册方式以及基于RPC的注册方式。此外,Nacos还提供了丰富的API和界面,使得用户能够方便地管理和监控注册的服务和配置信息。 关于Nacos的下载安装和配置,可以通过官方网站进行下载,并按照官方文档的指引进行安装和配置。Nacos的目录结构和外部数据库的配置也可以在官方文档中找到相应的说明。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Nacos学习之初识Nacos](https://blog.csdn.net/weixin_42601136/article/details/121761177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Nacos注册中心的部署与用法详细介绍](https://blog.csdn.net/a745233700/article/details/122915663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值