注册中心nacos集群环境搭建

本文主要介绍:搭建高可用的Nacos集群环境,其中Nginx作负载均衡,Mysql存储持久化数据,搭建环境使用组件版本如下,搭建是可以根据实际需要更改版本:

  1. Linux :centos7
  2. Mysql :5.7.2(建议使用版本大于5.7,持久化数据)
  3. Nginx :1.18.0 (负载均衡)
  4. nacos :1.1.4 (注册中心)
  5. jdk:8u162-linux-x64 (nacos运行需要jdk环境)

环境整体架构:

nacos当做注册中心 配置不会自动刷新 nacos注册中心 集群_sql

搭建环境分为以下几步,具体如下:

1、JAVA环境准备

① 下载jdk上传的linux目录,解压;

② 配置环境变量:编辑 etc/profile文件添加如下内容,添加后重新加载配置文件即可:source /etc/profile;

export JAVA_HOME=/opt/java8/jdk1.8.0_162 
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ 
export PATH=$PATH:$JAVA_HOME/bin

③ java -version 验证是否安装成功

2、Mysql环境准备

这里使用的docker创建mysql数据库,生产环境中mysql一般不建议使用docker,docker安装Mysql的方法如下,连接正常表示创建成功,这里设置的root的密码为root:

docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
-d:后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-e 设置参数
3、Nacos环境准备

nacos的数据配置存储在每个实例对应的数据库,nacos源码的依赖可以看到使用的数据库是derby:

<dependency>
   <groupId>org.apache.derby</groupId>
   <artifactId>derby</artifactId>
   <version>${derby.version}</version>
</dependency>

我们这里多个nacos实例搭建集群,需要将配置数据统一管理,这里选择Mysql数据库,因此我们需要对nacos的配置文件进行更改:

① 下载Linux版的nacos,下载地址:

https://github.com/alibaba/nacos/releases/tag/1.1.4

② 上传到Linux指定目录,解压:

tar -xvf nacos-server-1.1.4.tar.gz

③ 先添加数据库相关配置,更改conf下的application.properties文件,添加数据库相关信息如下:

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

④ 创建nacos的数据库初始表和数据:/opt/mynacos/nacos/conf下的文件nacos-mysql.sql,连接安装的数据库后,创建database:nacos_config,然后执行数据库sql语句,执行完可以看到数据库中有对应的表数据,这样nacos中的配置信息都会使用mysql进行持久化。

nacos当做注册中心 配置不会自动刷新 nacos注册中心 集群_mysql_02

⑤ 更改nacos集群配置,有三个地方需要修改:

  • 修改conf下的cluster.conf文件:
192.168.56.10:3333
192.168.56.10:4444
192.168.56.10:5555
# 添加以下文件,代表集群情况下,三个实例端口分别为3333、4444、5555、ip为本地ip,此处不能填写127.0.0.1
  • 添加端口启动配置,修改startup.sh文件

nacos当做注册中心 配置不会自动刷新 nacos注册中心 集群_spring_03

  • 添加启动传入端口识别,可以按照自己需要的端口启动,添加 -Dserver.port=${PORT}

nacos当做注册中心 配置不会自动刷新 nacos注册中心 集群_spring_04

上述更改完之后,nacos启动方式为

./startup.sh -p 3333 
# -p 填写相应端口
4、修改nginx的配置

① 下载Nginx

http://nginx.org/en/download.html

② 上传下载的tar包,并解压

tar -xvf nginx-1.18.0

③ 如果没有sbin目录,需要编译

./configure --prefix=/opt/mynginx/nginx-1.18.0
# /opt/mynginx/nginx-1.18.0 为nginx所在的目录

④ make & make install 编译,则可以生成sbin目录

⑤ 作三个nacos实例的负载均衡,需要修改conf下的配置文件nginx.conf:

nacos当做注册中心 配置不会自动刷新 nacos注册中心 集群_sql_05

# 修改说明:
1、修改nginx默认监听端口,从80改为1111;
2、采取负载均衡的方式访问后进行分流
5、启动环境验证

至此,环境配置相关的修改已经完成,可以启动nacos、nginx等验证环境是否正常,启动顺序如下:

1、启动nacos,进入nacos的bin目录:

./startup.sh -p 3333 
./startup.sh -p 4444
./startup.sh -p 5555
# -p 指定端口启动

2、启动nginx,进入nginx的sbin目录下:

./nginx -c /opt/mynginx/nginx-1.18.0/conf/nginx.conf
# -C 指定启动的配置文件

3、访问验证,出现如下页面说明,环境搭建正常:

http://192.168.56.10:1111/nacos/#/login
# 192.168.56.10 为linux的ip,用户名密码均为 nacos

nacos集群环境搭建成功的访问页面如下:

nacos当做注册中心 配置不会自动刷新 nacos注册中心 集群_nginx_06