安装包及环境准备
环境准备
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 1.8+;下载 & 配置。
- 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方便,推荐模式
开始实践
由于我只有一台服务器,所以采用在一台机器上来启动 3个 Nacos 服务来模拟集群。
文件准备及配置修改
-
解压安装包,命名为 nacos_8848, 这是第一个 nacos 服务的启动程序,再将其复制,分别命名为 nacos_8858, nacos_8868
-
修改
nacos_8848/conf下的application.properties,将server.port更改为程序运行端口,并更新数据源访问配置。其余两个文件夹执行相同操作,只需要调整端口号。
- 在
nacos_8848/conf路径下创建 cluster.conf 文件,将3个 nacos 服务的地址配置进去
创建依赖的数据库
如果使用内置数据源,则跳过此步。官方建议生产使用建议至少主备模式,或者采用高可用数据库。 此处以 MySQL 数据库举例:
- 创建一个名为
nacos_config的数据库 - 使用
nacos_8848/conf目录下的nacos-mysql.sql文件创建数据库 - 此数据库配置即为上文提到的数据源配置
配置 Nginx
注意:需要添加 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 控制台,都能成功说明全部启动成功,进入控制台,查看节点列表,三个节点全为上线状态,至此,集群部署完成。