Nacos2.1.1安装详解以及所需依赖
一、下载安装包
下载位置:https://github.com/alibaba/nacos/releases
进入之后往下拉,找到想要下载的对应版本的Assets
。
然后选择Linux
或者Windows
的安装包。
这里就以22年8月发布的2.1.1最新版本为例:
注意:
- 不管使用哪个系统,都有把安装包解压到任意
非中文目录
下,否则启动时就会出现问题 - 不管使用哪个系统,都需要保证系统上安装了
JDK
,因为Nacos
是依赖于JDK
运行的。
二、Windows安装
2.1 解压安装包
将这个包解压到任意非中文目录
下
一定要是非中文目录
,要不然可能会出现各种各样的问题。特别是在集群部署的时候。
目录说明:
目录名称 | 说明 |
bin | 启动脚本文件 |
conf | Nacos启动的脚本文件 |
target | nacos-server.jar的位置 |
2.2 Nacos端口配置
Nacos
的默认端口是8848。
如果想要修改端口,可以进入Nacos
的conf
目录下,修改application.properties
中的端口配置。
打开红框处的配置文件,修改如下位置的内容:
2.3 数据库配置
如果只是初步学习nacos
的功能,这一步可以不进行配置,nacos
一样可以正常运行。
此时数据存储于nacos
解压目录下的data
目录当中,而不是存储于第三方数据库当中。
生产环境肯定是会配置数据库,把nacos
的数据存储在第三方数据库当中,方便维护和日后扩展成集群。
1)配置位置
在nacos
解压目录下,有一个conf
目录,数据库的配置位置就在conf
目录下的application.properties
文件当中。
打开application.properties
文件找到Connect URL of DB
这个模块,下面的内容默认都是注释状态。
这里就是数据库的配置位置,连接池配置默认是打开的。
2)创建数据库,库名就叫nacos
数据库的版本需要8.0,5.7版本会有问题
3)执行nacos-mysql.sql
在nacos
解压目录下的conf
目录中就有nacos-mysql.sql
文件。
执行成功后数据库表如下:
注意点:
执行这个文件可能会报如下错误:
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
进入Nacos
的bin
目录下:
-
cmd
是Windows
下的批处理命令 -
sh
则是Linux
系统下的可执行文件。 -
shutdown
代表关闭 -
startup
代表启动
windows单机启动命令:
startup.cmd -m standalone
# 如果上面命令报错就执行:
.\startup.cmd -m standalone
注意:
可能有人会有疑问,为什么不直接点击上面的cmd
文件启动。
主要是因为Naocs
默认是使用集群模式启动。
直接点击cmd
文件是没办法启动成功的。
成功启动后的效果如图:
执行成功之后Nacos目录下会多出两个文件夹
目录名称 | 说明 |
data | Nacos运行后的相关数据,包括注册的服务器信息、共享配置信息、集群配置信息等 |
logs | Nacos运行后相关的日志文件 |
2.5 访问Nacos控制台
在浏览器输入地址:http://127.0.0.1:8848/nacos
会首先进入登录页:
默认的账号和密码都是nacos
输入账号密码之后可以看到Nacos
控制台主页:
三、Linux安装
3.1 创建Nacos
存放目录路径
# 进入/usr/local/目录下
cd /usr/local/
# 创建 nacos 文件夹
mkdir nacos
# 进入创建的nacos目录
cd nacos
3.2 使用finallshell上传Nacos安装包
把安装包上传到刚才的nacos
目录下:
3.3 解压刚才上传的安装包
解压命令:
tar -zxvf nacos-server-2.1.1.tar.gz
再次进入刚才解压出来的nacos
目录:
cd nacos
因为刚才在/usr/local/下创建了一个nacos文件夹,并在这个文件夹下执行了解压安装包的命令
所以这个nacos文件夹中又有了一个nacos文件夹。
现在的目录结构应该是/usr/local/nacos/nacos
可以看到目录结构其实个Windows
下的目录结构是一样的。
3.4 端口配置
进入conf
目录下
cd /usr/local/nacos/nacos/conf/
使用vim
命令修改application.properties
配置文件
vim application.properties
按i
进入插入模式
i
修改完成后:wq
退出
:wq
3.5 启动Nacos
Linux单机启动命令:
进入nacos/bin
目录下:
cd /usr/local/nacos/nacos/bin/
在nacos/bin
目录中,输入命令启动Nacos
:
sh startup.sh -m standalone
四、docker部署
这里主要使用dockercompose
微服务编排技术来部署nacos
,这也是最接近实际部署的方式。
使用这种方式,在Linux
主机上要要装好docker
和dockercompose
。
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
上面配置了一个mysql
和nacos
,其中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
中的服务注册发现和配置管理功能。