nacos

Nacos集群搭建

Nacos集群采用MySQL作为底层存储,本文采用Nacos2.2.3版本,这也是当前最新的稳定版本,我准备三台机器用于集群搭建。

[root@linux1 nacos]# cat /etc/hosts 
192.168.233.101 linux1
192.168.233.102 linux2
192.168.233.103 linux3

1. JDK

所有机器都需要安装JDK运行环境,并配置环境变量

yum install -y java-1.8.0-openjdk*

配置环境变量

[root@linux1 nacos]# cat /etc/profile.d/java-env.sh 
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64
export PATH=$PATH:$JAVA_HOME/bin
[root@linux1 nacos]# source /etc/profile

2. 下载

Nacos可以使用源码和编译后的压缩包进行安装,本文使用编译后的压缩包进行安装,下载地址为:https://github.com/alibaba/nacos/releases/tag/2.2.3

nacos-server

按照上图所示下载并上传到服务器上,解压后目录结构如下图所示:

[root@linux1 software]# tree nacos -L 2
nacos
├── bin
│   ├── shutdown.cmd # win下的关闭脚本
│   ├── shutdown.sh # linux下的关闭脚本
│   ├── startup.cmd # win下的启动脚本
│   └── startup.sh # linux下的启动脚本
├── conf
│   ├── 1.4.0-ipv6_support-update.sql # 支持ipv6
│   ├── announcement.conf
│   ├── application.properties # spring boot配置文件
│   ├── application.properties.example # Spring boot配置文件模板
│   ├── cluster.conf.example # 集群配置,需要重命名为cluster.conf
│   ├── derby-schema.sql # derby的建表语句
│   ├── mysql-schema.sql # Mysql的建表语句
│   └── nacos-logback.xml # 日志配置文件
├── LICENSE # 协议
├── NOTICE
├── target
│   └── nacos-server.jar # 运行的jar包

3. 配置

搭建集群要做两个配置

第一个是application.properties中要配置数据库信息。

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://linux1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=MyNewPass4!

同时需要创建数据库名称,并执行建表语句。

mysql> use nacos
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> source /opt/software/nacos/conf/mysql-schema.sql

第二个要修改的是cluster.conf(默认没有这个文件,可以将cluster.conf.example重命名)

192.168.233.101:8848
192.168.233.102:8848
192.168.233.103:8848

配置的内容就是ip:port,ip就是本地的ip,端口则是nacos的端口,默认就是8848

4. 启动

每个机器的都执行启动命令:

[root@linux1 nacos]# bin/startup.sh
[root@linux2 nacos]# bin/startup.sh
[root@linux3 nacos]# bin/startup.sh

5. 负载

多个实例已经启动,可以使用SLB来实现服务的负载均衡,我使用nginx来实现,比如我安装在linux1这个机器上。

[root@linux1 software]# sudo yum install yum-utils -y

[root@linux1 software]# cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 安装nginx
[root@linux1 software]# sudo yum install nginx
# 启动,开机启动nginx
[root@linux1 software]# systemctl enable nginx --now
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

访问http://linux1,看到如下图代表安装成功。

访问

安装完毕后,需要配置负载均衡。

[root@linux1 conf.d]# cat default.conf
upstream nacosserver {
   server 192.168.233.101:8848;
   server 192.168.233.102:8848;
   server 192.168.233.103:8848;
}
server {
    listen       80;
    server_name  localhost;
    
    location /nacos/ {
       proxy_pass http://nacosserver;
    }
}

关闭防火墙和SELINUX

6. 访问

访问地址:http://linux1:8848/nacos

nacos首页

集群管理菜单能够查看集群情况:

集群管理

标签: nacos

添加新评论