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张图片

Nacos注册中心_第2张图片

一、认识和安装Nacos

1.1、认识Nacos(那扣丝)

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

Nacos注册中心_第3张图片

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 Nacos注册中心_第4张图片

Nacos注册中心_第5张图片

 Nacos注册中心_第6张图片

1.2.2、解压安装包

Nacos注册中心_第7张图片

 Nacos注册中心_第8张图片

目录说明:

  • bin:启动脚本

  • conf:配置文件

1.2.3、端口配置

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

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

Nacos注册中心_第9张图片

 Nacos注册中心_第10张图片

1.2.4、启动Nacos注册中心

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

Nacos注册中心_第11张图片

然后执行命令即可:

  • windows命令:

startup.cmd -m standalone 

 执行后的效果如图:

Nacos注册中心_第12张图片

1.2.5、访问

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

Nacos注册中心_第13张图片

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

Nacos注册中心_第14张图片

1.3、Nacos安装(Linux版安装)

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

1.3.1、安装JDK

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

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

Nacos注册中心_第15张图片

上传到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的版本即可:

Nacos注册中心_第16张图片

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

Nacos注册中心_第17张图片

1.3.3、解压Nacos安装包

命令解压缩安装包:

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

然后删除安装包:

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

目录中最终样式:

Nacos注册中心_第18张图片

目录内部:

Nacos注册中心_第19张图片

 1.3.4、端口配置

与windows版中类似

1.3.5、启动Nacos注册中心

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

sh startup.sh -m standalone

1.4、Nacos的依赖

父工程:


    com.alibaba.cloud
    spring-cloud-alibaba-dependencies
    2.2.5.RELEASE
    pom
    import

客户端:



    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery

二、Nacos快速入门

       

         注意:如果使用Nacos注册中心的话,记得看一下项目中是否配了eureka注册中心,(因为Nacos注册中心和eureka注册中心的意义是一样的,总不能配置两个注册中心吧)

Nacos注册中心_第20张图片

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

Nacos注册中心_第21张图片

代码演示如下所示:

1、

  
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.5.RELEASE
                pom
                import
            

Nacos注册中心_第22张图片

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

Nacos注册中心_第23张图片

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

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

Nacos注册中心_第24张图片

3

Nacos注册中心_第25张图片

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

Nacos注册中心_第26张图片

 Nacos注册中心_第27张图片

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

Nacos注册中心_第28张图片

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

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

Nacos注册中心_第29张图片

三、Nacos服务分级存储模型

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

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

Nacos注册中心_第30张图片

 Nacos分级储存后:Nacos注册中心_第31张图片

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

Nacos注册中心_第32张图片

 演示如下所示:

Nacos注册中心_第33张图片

 Nacos注册中心_第34张图片

 Nacos注册中心_第35张图片

Nacos注册中心_第36张图片

四、NacosRule负载均衡

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

演示如下所示:

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

Nacos注册中心_第37张图片

 Nacos注册中心_第38张图片

 Nacos注册中心_第39张图片

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

 Nacos注册中心_第40张图片

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

Nacos注册中心_第41张图片

 Nacos注册中心_第42张图片

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

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

 Nacos注册中心_第43张图片

 

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

Nacos注册中心_第44张图片

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

Nacos注册中心_第45张图片

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

Nacos注册中心_第46张图片

Nacos注册中心_第47张图片

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

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

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

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

Nacos注册中心_第48张图片

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

Nacos注册中心_第49张图片

 Nacos注册中心_第50张图片

 Nacos注册中心_第51张图片

访问测试:

Nacos注册中心_第52张图片

 Nacos注册中心_第53张图片

六、Nacos和Eureka的区别

Nacos注册中心_第54张图片

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

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

Nacos注册中心_第55张图片

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

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

 Nacos注册中心_第56张图片

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

Nacos注册中心_第57张图片

你可能感兴趣的:(笔记,java,spring,spring,cloud)