Nacos 集群部署

6,243 阅读3分钟

安装包及环境准备

环境准备

Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 64 bit JDK 1.8+;下载 & 配置
  3. Maven 3.2.x+;下载 & 配置

安装包下载

直接下载编译后的安装包 下载 & 版本说明

集群部署

下图是官方推荐的集群方案,通过域名 + VIP模式的方式来实现,我的理解VIP模式就用 Nginx 就行,用它来负载多个 Nacos 节点 IP,外部客户端直接通过域名访问就可,不仅可读性好,而且更换 IP 方便,最为推荐采用。

http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

http://SLB:port/openAPI 挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。

nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式

deployDnsVipMode.jpg

开始实践

由于我只有一台服务器,所以采用在一台机器上来启动 3个 Nacos 服务来模拟集群。

文件准备及配置修改
  1. 解压安装包,命名为 nacos_8848, 这是第一个 nacos 服务的启动程序,再将其复制,分别命名为 nacos_8858, nacos_8868

  2. 修改 nacos_8848/conf下的 application.properties,将 server.port 更改为程序运行端口,并更新数据源访问配置。其余两个文件夹执行相同操作,只需要调整端口号。

image.png

  1. nacos_8848/conf 路径下创建 cluster.conf 文件,将3个 nacos 服务的地址配置进去

image.png

创建依赖的数据库

如果使用内置数据源,则跳过此步。官方建议生产使用建议至少主备模式,或者采用高可用数据库。 此处以 MySQL 数据库举例:

  • 创建一个名为 nacos_config 的数据库
  • 使用 nacos_8848/conf 目录下的 nacos-mysql.sql 文件创建数据库
  • 此数据库配置即为上文提到的数据源配置

image.png

配置 Nginx

image.png

注意:需要添加 proxy_set_header Host $host:$server_port; 在http 1.1的规范中,Host只要出现空,就会返回400,所以出现了这个故障。而对于需要在Host字段里带上端口信息的,则仍需要配置proxy_set_header Host $http_host。

后续将有一篇文章介绍 Docker 快速部署 Nginx ,敬请期待

启动服务

启动 nacos_8848/bin 目录下的 startup.sh,观察启动日志。其余两个节点执行相同操作。 分别访问3个 nacos 控制台,都能成功说明全部启动成功,进入控制台,查看节点列表,三个节点全为上线状态,至此,集群部署完成。

image.png