文章目录
CentOS7安装部署Nacos
一、前言
1.简介
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
2.环境
- Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
- JDK 版本:Java SE Development Kit 11.0.19
- MySQL 版本:mysql80-community-release-el7-9
- Nacos 版本:2.2.3
Nacos 官网:https://nacos.io/zh-cn/index.html
Nacos - github:https://github.com/alibaba/nacos/tags
Nacos 鉴权:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
Nacos 多数据源插件:https://nacos.io/zh-cn/docs/v2/plugin/datasource-plugin.html
Nacos 集群部署说明 :https://nacos.io/zh-cn/docs/v2/guide/admin/cluster-mode-quick-start.html
CentOS7安装部署Java11:https://blog.youkuaiyun.com/u011424614/article/details/132418561
CentOS7安装部署MySQL80:https://blog.youkuaiyun.com/u011424614/article/details/132418916
keepalived识别MGR主节点:https://blog.youkuaiyun.com/u011424614/article/details/133222266
nginx入门和使用实践:https://blog.youkuaiyun.com/u011424614/article/details/107051875
CentOS基础操作命令:https://blog.youkuaiyun.com/u011424614/article/details/94555916
二、正文
1.部署服务器
- Nacos 端口
端口 | 描述 |
---|---|
7848 | 集群数据同步端口 |
8848 | Web管理端访问端口 |
9848 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 服务端gRPC请求服务端端口,用于服务间同步等 |
- 服务器
机器名 | IP | 软件包 |
---|---|---|
sys-cluster-01 | 192.168.249.131 | Nacos |
sys-cluster-02 | 192.168.249.132 | Nacos |
sys-cluster-03 | 192.168.249.133 | Nacos |
sys-cluster-04 | 192.168.249.134 | MySQL |
2.基础环境
1)主机名
- 修改 4 台服务器的主机名
# 131 执行
hostnamectl set-hostname sys-cluster-01 --static
hostnamectl set-hostname sys-cluster-01 --transient
# 132 执行
hostnamectl set-hostname sys-cluster-02 --static
hostnamectl set-hostname sys-cluster-02 --transient
# 133 执行
hostnamectl set-hostname sys-cluster-03 --static
hostnamectl set-hostname sys-cluster-03 --transient
# 134 执行
hostnamectl set-hostname sys-cluster-04 --static
hostnamectl set-hostname sys-cluster-04 --transient
# 查询状态
hostnamectl status
2)Hosts文件
- 修改 4 台服务器的 hosts 文件
cat > /etc/hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.249.131 sys-cluster-01
192.168.249.132 sys-cluster-02
192.168.249.133 sys-cluster-03
192.168.249.134 sys-cluster-04
EOF
3)关闭防火墙
- 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service
4)JDK 安装部署
在 4 台服务器上安装JDK
- 安装参考:《CentOS7安装部署Java11》
- 安装目录:
/opt/java/jdk-11.0.19
5)MySQL 安装部署
在 134 服务器上安装MySQL
- 安装参考:《CentOS7安装部署MySQL80》
- 目录:
- 安装目录:
/usr/local/mysql
- 数据库文件目录,例如表结构和数据:
/var/lib/mysql
- 日志文件目录:
/var/log/mysql
- 配置文件目录:
/etc/mysql
- 用户名:
root
密码:Root@#123456
3.外置数据源
在 134 服务器上执行
- 数据源选择
- 内置数据源:无需进行任何配置
- 外置数据源:生产使用建议至少主备模式,或者采用高可用数据库
1)下载软件包
- 创建安装目录,并下载
mkdir /opt/nacos
cd /opt/nacos
# 下载
wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz --no-check-certificate
# 解压
tar -xzf nacos-server-2.2.3.tar.gz
2)导入数据
- 登录 mysql 客户端,并执行 nacos 自带的 SQL 文件
mysql -ruoot -p
# 创建数据库
CREATE DATABASE nacos_config;
USE nacos_config;
# 执行 sql 文件
SOURCE /opt/nacos/nacos/conf/mysql-schema.sql
# 查询
show tables;
4.单机部署
在 131 服务器上执行
1)下载软件包
- 创建安装目录,并下载
mkdir /opt/nacos
cd /opt/nacos
# 下载
wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz --no-check-certificate
# 解压
tar -xzf nacos-server-2.2.3.tar.gz
2)修改配置文件
- 编辑 application.properties 配置文件
【Config Module Related Configurations】段:配置 MySQL 数据库
【Access Control Related Configurations】段:开启鉴权
- nacos.core.auth.plugin.nacos.token.secret.key:使用 Base64 在线编码 进行密钥生成,至少 32 个字符
vim /opt/nacos/nacos/conf/application.properties
- 内容
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://sys-cluster-04:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=Root@#123456
### If turn on auth system:
nacos.core.auth.enabled=true
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos
### The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.key=amxramxramtsamFkc2Zhc2RmYXNkZmE1NjQ1NmY0NWFzZDRmNjU0YXM1NmRmNDZhNXNk
3)单机启动
- 单机模式运行
# 执行权限
chmod +x /opt/nacos/nacos/bin/startup.sh
chmod +x /opt/nacos/nacos/bin/shutdown.sh
cd /opt/nacos/nacos/bin
# 启动
./startup.sh -m standalone
# 停止
./shutdown.sh
- 日志输出
# 实时输出
tail -f /opt/nacos/nacos/logs/start.out
# 静态输出
cat /opt/nacos/nacos/logs/start.out
- 浏览器访问:
http://192.168.249.131:8848/nacos
- 输入账号和密码:nacos / nacos
4)自启动
- 创建 nacos.service
cat > /etc/systemd/system/nacos.service <<EOF
[Unit]
Description=Nacos Service standalone
After=syslog.target network.target
[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=forking
ExecStart=/opt/nacos/nacos/bin/startup.sh -m standalone
ExecReload=/opt/nacos/nacos/bin/shutdown.sh
ExecStop=/opt/nacos/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
- 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start nacos.service
systemctl enable nacos.service
- 查询 Nacos 进程状态
systemctl status nacos.service
5.集群部署
1)下载软件包
在 131 服务器上执行
- 创建安装目录,并下载
mkdir /opt/nacos
cd /opt/nacos
# 下载
wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz --no-check-certificate
# 解压
tar -xzf nacos-server-2.2.3.tar.gz
2)修改配置文件
在 131 服务器上执行
(1)application.properties
- 编辑 application.properties 配置文件
【Config Module Related Configurations】段:配置 MySQL 数据库
【Access Control Related Configurations】段:配置鉴权信息
- nacos.core.auth.plugin.nacos.token.secret.key:使用 Base64 在线编码 进行密钥生成,至少 32 个字符
vim /opt/nacos/nacos/conf/application.properties
- 编辑内容
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://sys-cluster-04:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=Root@#123456
### If turn on auth system:
nacos.core.auth.enabled=true
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos
### The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.key=amxramxramtsamFkc2Zhc2RmYXNkZmE1NjQ1NmY0NWFzZDRmNjU0YXM1NmRmNDZhNXNk
(2)cluster.conf
- 拷贝并编辑 cluster.conf
# 拷贝
cp /opt/nacos/nacos/conf/cluster.conf.example /opt/nacos/nacos/conf/cluster.conf
# 编辑
vim /opt/nacos/nacos/conf/cluster.conf
- 编辑内容,Nacos 集群的IP和端口列表
#it is ip
192.168.249.131:8848
192.168.249.132:8848
192.168.249.133:8848
3)拷贝Nacos
在 131 服务器上执行
- 拷贝 Nacos 到其它服务器
scp -r /opt/nacos root@192.168.249.132:/opt/nacos
scp -r /opt/nacos root@192.168.249.133:/opt/nacos
4)集群启动
在 131、132、133 服务器上执行
- 启动
# 执行权限
chmod +x /opt/nacos/nacos/bin/startup.sh
chmod +x /opt/nacos/nacos/bin/shutdown.sh
cd /opt/nacos/nacos/bin
# 启动
./startup.sh
# 停止
./shutdown.sh
- 日志输出
# 实时输出
tail -f /opt/nacos/nacos/logs/start.out
# 静态输出
cat /opt/nacos/nacos/logs/start.out
- 浏览器访问:
http://192.168.249.131:8848/nacos
http://192.168.249.132:8848/nacos
http://192.168.249.133:8848/nacos
- 输入账号和密码:nacos / nacos
5)自启动
在 131、132、133 服务器上执行
- 创建 nacos.service
cat > /etc/systemd/system/nacos.service <<EOF
[Unit]
Description=Nacos Service standalone
After=syslog.target network.target
[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=forking
ExecStart=/opt/nacos/nacos/bin/startup.sh
ExecReload=/opt/nacos/nacos/bin/shutdown.sh
ExecStop=/opt/nacos/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
- 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start nacos.service
systemctl enable nacos.service
- 查询 Nacos 进程状态
systemctl status nacos.service
6)进阶部署
Nacos 集群部署说明 :https://nacos.io/zh-cn/docs/v2/guide/admin/cluster-mode-quick-start.html
-
Nginx 负载均衡
-
Nginx + Keepalived 双机主备
-
Nginx + Keepalived 双主热备
三、其它
1.常用命令
命令 | 说明 |
---|---|
systemctl daemon-reload | 重新加载服务配置 |
systemctl start nacos.service | 启动服务 |
systemctl enable nacos.service | 开机自启动服务 |
systemctl status nacos.service | 查询服务状态 |
systemctl stop nacos.service | 停止服务 |
systemctl restart nacos.service | 重启服务 |
systemctl disable nacos.service | 禁用开机自启动服务 |