Nacos2.1.1安装详解以及所需依赖

一、下载安装包

下载位置:https://github.com/alibaba/nacos/releases

进入之后往下拉,找到想要下载的对应版本的Assets

然后选择Linux或者Windows的安装包。

这里就以22年8月发布的2.1.1最新版本为例:

nacos依赖redis nacos依赖版本_linux

注意:

  • 不管使用哪个系统,都有把安装包解压到任意非中文目录下,否则启动时就会出现问题
  • 不管使用哪个系统,都需要保证系统上安装了JDK,因为Nacos是依赖于JDK运行的。

二、Windows安装

2.1 解压安装包

将这个包解压到任意非中文目录

一定要是非中文目录,要不然可能会出现各种各样的问题。特别是在集群部署的时候。

nacos依赖redis nacos依赖版本_nacos依赖redis_02

目录说明:

目录名称

说明

bin

启动脚本文件

conf

Nacos启动的脚本文件

target

nacos-server.jar的位置

2.2 Nacos端口配置

Nacos的默认端口是8848。

如果想要修改端口,可以进入Nacosconf目录下,修改application.properties中的端口配置。

nacos依赖redis nacos依赖版本_spring cloud_03

打开红框处的配置文件,修改如下位置的内容:

nacos依赖redis nacos依赖版本_java_04

2.3 数据库配置

如果只是初步学习nacos的功能,这一步可以不进行配置nacos一样可以正常运行。

此时数据存储于nacos解压目录下的data目录当中,而不是存储于第三方数据库当中。

生产环境肯定是会配置数据库,把nacos的数据存储在第三方数据库当中,方便维护和日后扩展成集群。

1)配置位置

nacos解压目录下,有一个conf目录,数据库的配置位置就在conf目录下的application.properties文件当中。

nacos依赖redis nacos依赖版本_nacos依赖redis_05

打开application.properties文件找到Connect URL of DB这个模块,下面的内容默认都是注释状态。

nacos依赖redis nacos依赖版本_nacos依赖redis_06

这里就是数据库的配置位置,连接池配置默认是打开的。

2)创建数据库,库名就叫nacos

nacos依赖redis nacos依赖版本_nacos依赖redis_07

数据库的版本需要8.0,5.7版本会有问题

3)执行nacos-mysql.sql

nacos解压目录下的conf目录中就有nacos-mysql.sql文件。

nacos依赖redis nacos依赖版本_spring cloud_08

执行成功后数据库表如下:

nacos依赖redis nacos依赖版本_java_09

注意点:

执行这个文件可能会报如下错误:

Invalid default value for 'gmt_create'

有以下解决方法:

  • datetime类型改为timestamp类型。
  • 去掉DEFAULT CURRENT_TIMESTAMP
  • Mysql数据库版本升级至5.6.5以上。

我不建议修改官方提供的文件,语句那么多也不好改,而且官网这么写说不定有特定作用。

所有出现这个问题,只要提升我们自己数据库的版本就行。

可以使用Mysql 5.7或者8.0版本。

4)解开数据库配置注释,换成自己的配置

打开conf目录下的application.properties文件,增加如下配置:

#数据平台 就是目前使用的哪种数据库 即mysql oracle等数据库
spring.datasource.platform=mysql	

#db.num 集群中有几台mysql
db.num=1

# 数据库的url 用户名和密码
db.url.0=jdbc:mysql://192.168.137.129:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

这些配置默认都是注释的,只需解开,换成自己的配置即可。

这些配置的意义都已经用中文注明,可以根据实际情况进行配置。

2.4. 启动Nacos

进入Nacosbin目录下:

nacos依赖redis nacos依赖版本_nacos依赖redis_10

  • cmdWindows下的批处理命令
  • sh则是Linux系统下的可执行文件。
  • shutdown代表关闭
  • startup代表启动

windows单机启动命令:

startup.cmd -m standalone
# 如果上面命令报错就执行:
.\startup.cmd -m standalone

注意:

可能有人会有疑问,为什么不直接点击上面的cmd文件启动。

主要是因为Naocs默认是使用集群模式启动。

直接点击cmd文件是没办法启动成功的。

成功启动后的效果如图:

nacos依赖redis nacos依赖版本_spring cloud_11

执行成功之后Nacos目录下会多出两个文件夹

nacos依赖redis nacos依赖版本_linux_12

目录名称

说明

data

Nacos运行后的相关数据,包括注册的服务器信息、共享配置信息、集群配置信息等

logs

Nacos运行后相关的日志文件

2.5 访问Nacos控制台

在浏览器输入地址:http://127.0.0.1:8848/nacos

会首先进入登录页:

nacos依赖redis nacos依赖版本_服务器_13

默认的账号和密码都是nacos

输入账号密码之后可以看到Nacos控制台主页:

nacos依赖redis nacos依赖版本_nacos依赖redis_14

三、Linux安装

3.1 创建Nacos存放目录路径

# 进入/usr/local/目录下
cd /usr/local/
# 创建 nacos 文件夹
mkdir nacos
# 进入创建的nacos目录
cd nacos

3.2 使用finallshell上传Nacos安装包

把安装包上传到刚才的nacos目录下:

nacos依赖redis nacos依赖版本_nacos依赖redis_15

3.3 解压刚才上传的安装包

解压命令:

tar -zxvf nacos-server-2.1.1.tar.gz

再次进入刚才解压出来的nacos目录:

cd nacos

因为刚才在/usr/local/下创建了一个nacos文件夹,并在这个文件夹下执行了解压安装包的命令

所以这个nacos文件夹中又有了一个nacos文件夹。

现在的目录结构应该是/usr/local/nacos/nacos

nacos依赖redis nacos依赖版本_nacos依赖redis_16


可以看到目录结构其实个Windows下的目录结构是一样的。

3.4 端口配置

进入conf目录下

cd /usr/local/nacos/nacos/conf/

使用vim命令修改application.properties配置文件

vim  application.properties

nacos依赖redis nacos依赖版本_linux_17

i进入插入模式

i

修改完成后:wq退出

:wq

3.5 启动Nacos

Linux单机启动命令:

进入nacos/bin目录下:

cd /usr/local/nacos/nacos/bin/

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

sh startup.sh -m standalone

nacos依赖redis nacos依赖版本_nacos依赖redis_18

四、docker部署

这里主要使用dockercompose微服务编排技术来部署nacos,这也是最接近实际部署的方式。

使用这种方式,在Linux主机上要要装好dockerdockercompose

4.1 在指定目录下新建docker-compose.yml文件

# 进入/usr/local目录下
cd /usr/local
# 创建目录docker存放docker-compose.yml文件
mkdir docker
# 创建docker-compose.yml文件
cd docker
touch docker-compose.yml

4.2 编写docker-compose.yml内容

version: '3'
services:
  mysql:
    image: mysql:8
    container_name: mysql-dev
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=nacos_config
      - MYSQL_USER=user01
      - MYSQL_PASSWORD=123456
    ports:
      - "3306:3306"
    volumes:
      - /usr/local/workspace/mysql/data:/var/lib/mysql
      - /usr/local/workspace/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
  
  nacos:
    image: nacos/nacos-server:v2.1.1-slim
    container_name: nacos-dev
    environment:
      - MODE=standalone
      - PREFER_HOST_MODE=hostname
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=root
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9555:9555"
    volumes:
      # 这里其实不用挂载配置文件 因为配置都写在上面的环境变量中了
      # - /usr/local/gddst/workspace/nacos/conf:/home/nacos/conf \
      - /usr/local/workspace/nacos/logs:/home/nacos/logs \
      - /usr/local/workspace/nacos/data:/home/nacos/data \
    depends_on:
      - mysql

上面配置了一个mysqlnacos,其中mysql是作为nacos的数据库。

4.3 执行部署命令

docker-compose.yml文件所在目录下执行:

docker-compose up -d

即可完成部署。

五、SpringBoot中关于引入Nacos的依赖

5.1 SpringCloudAlibaba有关依赖

<!-- SpringCloudAlibaba有关依赖 -->
<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>

如果有使用父工程同意管理依赖的话。

可以把这个依赖交由父工程的pom文件管理。

5.2 Nacos客户端起步依赖

<!-- nacos客户端起步依赖(Nacos服务注册发现依赖) -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

 <!--nacos配置管理依赖-->
 <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

在需要使用Nacos的微服务模块中引入就可以使用Nacos中的服务注册发现和配置管理功能。