Nacos 的单机部署搭建

Nacos 是阿里巴巴的产品,主要用来做微服务的注册中心和配置中心,界面美观,功能强大,在国内非常受欢迎。

本篇博客主要介绍如何搭建单机版的 Nacos ,为编写后续的博客做准备。后面也会介绍 Nacos 集群的搭建,搭建过程都很简单。

官方建议使用 2.x 的版本,本篇博客将以当前最新的 2.2.2 版本为例进行搭建,分别展示 Windows 和 Linux 的搭建过程。


一、安装包下载

访问 Nacos 的官网:http://nacos.io/zh-cn/index.html 点击【前往 GitHub】进入 GitHub 页面。

在 GitHub 页面的右侧点击 Release 进入 https://github.com/alibaba/nacos/releases 下载页面。

image

nacos-server-2.2.2.zip 用于 windows 安装。

nacos-server-2.2.2.tar.gz 用于 Linux 安装,本篇博客使用 CentOS7 进行安装。

把这两个安装包下载下来。Nacos 的安装非常简单,解压缩就相当于安装。


二、Windows 安装

首先需要安装 jdk ,建议版本是 1.8 或更高版本,这里省略了 jdk 的安装介绍。

本篇博客将 nacos-server-2.2.2.zip 解压缩到 D:\SoftWareInstall 目录下,建议文件夹不要包含中文、空格等,不要自己给自己找麻烦。解压后 SoftWareInstall 下就会有一个 nacos 的文件夹,其包含的文件如下:

image

配置文件在 conf 文件夹中,进入 conf 文件夹,内容如下:

image

对于 nacos 来说,默认情况下,使用自己内嵌的 derby 数据库,这是一款使用 Java 编写的开源数据库,具体介绍自己可以百度。如果仅仅是做开发测试,那就使用它吧。对于生产环境,还是老老实实的使用 Mysql 数据库存储 Nacos 的数据比较好。

在 mysql 上创建一个数据库,名称就可以随便取名,本篇博客取名为 nacos,然后运行上图中 conf 文件夹下的 mysql-schema.sql 文件,初始化相关的数据库表,结果如下所示:

image

打开 conf 文件夹下的 application.properties 文件(这个是 nacos 的配置文件),对 nacos 进行配置。

由于 application.properties 文件内容太多,这里就不列出来了,最主要关注下面的几个配置项:

# 这个是 nacos 的启动端口,默认就是 8848,这里不做更改
# 需要注意的是 nacos 2.0 版本以上,新增了 grpc 端口,是在启动端口上加 1000,也就是 9848
# 防火墙需要把 8848 和 9848 端口都进行开放,少开放一个端口,就会导致 Java 程序连接 nacos 时有报错信息
server.port=8848

# 下面是配置 nacos 有关连接 mysql 的一些参数配置
# 由于本篇博客没有采用读写分离,只有一个 mysql 库,所以 db.num=1
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.216.128:3306/nacos?characterEncoding=utf8
db.user.0=root
db.password.0=root

# 该配置项决定访问 nacos 时是否账号密码认证,默认值是 false,强烈建议修改为 true
nacos.core.auth.enabled=true

# 下面这俩配置项,其实没啥用,没什么作用,但是其值不能空着,否则 nacos 无法正常工作。
# 默认值为空字符串,随便填写一个值就行
nacos.core.auth.server.identity.key=jobs
nacos.core.auth.server.identity.value=888

# 这个配置项,我也没有发现有什么用,默认值为空字符串,但是其值不能空着,否则 nacos 无法正常工作。
# 找一个在线生成 base64 字符串的网站,随便输入一个拥有32个字符组成的字符串,生成 base64 字符串,填写到这里即可。
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

然后使用命令行窗口,进入 D:\SoftWareInstall\nacos\bin 目录下,运行以下命令启动 nacos

# -m 表示 mode 模式,standalone 表示单机启动。
# 默认采用集群的方式启动,因此如果直接运行 startup.cmd 表示集群启动
startup.cmd -m standalone

image

因为 nacos 是部署在我本机的 windows 上,因此只需要访问 http://loacalhost:8848/nacos/index.html 即可。

登录 nacos 网站的默认账号和密码都是 nacos

image


三、将 nacos 安装成 Windows 服务

nssm.exe 的下载地址为:http://www.nssm.cc/download

当前最新版本是 2.24,下载完成后,解压缩会发现有分为 32 位和 64 位,
我的电脑是 64 位,因此我将 64 位的 nssm.exe 复制到 nexus-3.48.0-01 的 bin 目录下(D:\SoftWareInstall\nexus\nexus-3.48.0-01\bin)。

然后打开控制台,将 nssm.exe 拖动控制台窗口,后面跟上 install 参数,运行命令:

nssm.exe install

image

弹出如下窗口,然后录入相关的信息:

image

Application Path:填写 startup.cmd 的绝对路径。

Startup directory:这个是 nacos 的启动目录,自动填充到了 nacos 所在的 bin 目录即可。

Arguments:启动时指定的参数,这里填写 -m standalone 即可。

Service name:服务的名字,这个名字会显示在 Windows 服务中,这里取名为 NacosService。

以上参数填写好后,点击 Install service 即可。安装成功后,到打开 服务 管理器,启动服务即可。

image


四、CentOS7 安装

在 CentOS7 上安装,跟 Windows 相同的地方是:解压缩,修改配置文件内容,因此下面就可以简略介绍了。

首先还是得先安装 jdk ,版本在 1.8 或更高版本,这里省略了 jdk 的安装介绍。

在根目录创建一个 app 文件夹:mkdir /app

将安装包上传到 /app 目录下,然后进行解压缩:tar -zxvf nacos-server-2.2.2.tar.gz

这样在 /app 目录下就会多出一个 nacos 目录,然后就可以删除安装包了:rm -rf nacos-server-2.2.2.tar.gz

修改 nacos 的配置文件:vim /app/nacos/conf/application.properties

具体修改的内容,跟上面的 windows 安装中修改的内容,一模一样

然后将 nacos 安装为 linux 的服务,这样后续方便 nacos 后续的维护操作,进入系统服务目录:cd /etc/systemd/system

创建一个 nacos.service 的文件:touch nacos.service

编辑 nacos.service 文件:vim nacos.service 输入以下内容:

[Unit]
Description=Nacos
After=syslog.target network.target
 
[Service]
Type=forking
Environment='JAVA_HOME=/app/jdk1.8'
ExecStart=/app/nacos/bin/startup.sh -m standalone
ExecStop=/app/nacos/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

保存退出后,只要服务的文件有变化,就需要运行命令:systemctl daemon-reload

然后就可以运行 systemctl start nacos 启动 nacos 服务。

为了能够让 nacos 能够开机启动,运行 systemctl enable nacos 即可。

对 nacos 的常用操作命令,主要如下:

# 启动 nacos 服务
systemctl start nacos
# 停止 nacos 服务
systemctl stop nacos
# 重启 nacos 服务
systemctl restart nacos
# 让 nacos 服务开机启动
systemctl enable nacos
# 禁止 nacos 服务开机启动
systemctl disable nacos

由于 CentOS 有防火墙,本篇博客的 nacos 使用默认的 8848 端口,因此 grpc 端口是 9848,需要开放这俩端口:

# 防火墙开放 8848 端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
# 防火墙开放 9848 端口
firewall-cmd --zone=public --add-port=9848/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload

# 查看防火墙已经开放的端口
firewall-cmd --list-ports

# 当然你也可以关闭防火墙
systemctl stop firewalld

一般情况下,我们也最好关闭 CentOS 的 Selinux 的安全控制。

vim /etc/selinux/config

将 SELINUX 的值修改为 disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

然后重启 CentOS7 即可禁用 Selinux 的配置生效。

posted @ 2023-05-07 21:12  乔京飞  阅读(11620)  评论(0编辑  收藏  举报