一、什么是nacos,为什么选择使用nacos

nacos是alibaba开源的一款具有分布式服务注册与发现、配置等功能的组件,熟悉分布式spring cloud的小伙伴一定对eureka、config不陌生。在没有nacos的时候,我们可能选择的组件eureka作为服务注册中心,总体使用感觉一般般。其次就是如果要对服务进行配置的话,还得引入config,这只是对单机下服务进行配置与刷新,如果要对集群服务进行配置刷新的话,还得额外引入bus、mq等相关组件,整体变得更加复杂。而在这里我们只是用nacos,就能实现服务注册、配置等功能,使用上更精近一步,架构更加清晰。

二、下载与启动nacos-server

1、可前往github上下载nacos:Releases · alibaba/nacos · GitHub

2、解压之后的目录如下:

3、进入到bin目录下:

4、 双击startup.cmd启动nacos-serever,报如下错误:

原因如下:

这个版本的nacos-server是默认以集群的方式启动的,因为我们目前没有对nacos做任何配置,所以导致启动失败,接下来将以单机的方式启动nacos-server。

5、在nacos-server的bin目录下的控制台输入如下指令:

startup.cmd -m standalone

控制台日志如下:

 接着访问localhost:8848,可看到nacos的登陆界面:

 6、登陆nacos,nacos默认的用户名与密码都是nacos,登陆之后界面如下:

三、将服务注册进nacos

1、引入如下依赖

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

2、修改配置文件,添加如下内容

spring:
  application:
    name: learn-01
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

一定不要忘了给服务起一个名字,服务名用处很大。

3、启动项目,在服务列表中能够看到该服务

四、nacos集群

1、以下是直接在同台机子不同端口测试,nacos复制多一份,以下称为nacos02。

2、修改nacos02的conf目录下的application.properties的server.port为8849,当然如果你有多台机子的话,不用修改端口,这里只针对在一台机子上搭建集群,所以要修改下nacos02的端口。

3、在nacos02的conf目录下找到cluster.conf.example文件,复制一份在当前目录下,并且重命名为cluster.conf,最后在文件中配置上nacos01的ip以及端口,如下:

#it is ip
#example
具体的ip地址:8848

 4、同上操作,在nacos01中配置好nacos02的地址

#it is ip
#example
具体的ip地址:8849

5、启动nacos01、nacos02

在这个过程之中启动一直报错。

通过观察日志,可能是与数据源有关,接下来进一步解决:

1)、将conf目录下的nacos-mysql.sql脚本在mysql客户端执行一遍

2)、修改application.properties,默认情况下数据源相关的配置都被注释掉了,现在将其打开

3)做完以上配置之后,就可以启动nacos了。

6、启动修改完数据源配置的nacos01、nacos02,可以通过集群管理看到集群节点均已注册上去。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐