转载

Spring Cloud Alibaba组件之--搭建生产可用的Nacos集群

一、前言

1、本文主要内容

​ 单机版的Nacos Server,安装非常简单,但一般不适用于生产,本文主要介绍下如何搭建生产可用的Nacos集群。

  • 使用Mysql存储持久化数据;

  • 如何搭建Nacos集群;

2、Nacos介绍

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

具体介绍可查看官网:https://nacos.io/zh-cn/docs/what-is-nacos.html

3、本篇环境信息

  • 服务器

    操作系统 硬件配置 IP 说明
    CentOS 7 4C16G 10.133.1.3 安装Nacos

    Tips:3个或3个以上Nacos节点才能构成集群,正常应该用三台服务器来搭建,本文使用一台服务器,三个端口号来实现。

  • 软件

    工具/环境 版本
    Nacos 1.1.4
    Mysql 5.7+
    Nginx 1.6.3

二、准备工作

1、安装Mysql

具体安装过程不在展开了,生产环境肯定是需要高可用的数据库来支撑。

2、下载Nacos

可以在https://github.com/alibaba/nacos/releases获取到最新稳定的版本。目前有两种格式 tar.gz 或者 zip

# 下载完成后,通过如下命令解压
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin 
复制代码

3、主机节点规划

节点 端口
10.133.1.3 8848
10.133.1.3 8849
10.133.1.3 8850

Tips:3个或3个以上Nacos节点才能构成集群,正常应该用三台服务器来搭建,本文使用一台服务器,三个端口号来实现。实际项目中,需要将Nacos的节点部署在不同机器中,从而实现更好的容灾与隔离。

4、开放对应端口号

#开放Nacos端口号、Nginx端口号
sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent 
sudo firewall-cmd --zone=public --add-port=8849/tcp --permanent 
sudo firewall-cmd --zone=public --add-port=8850/tcp --permanent 
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent 

#重载防火墙规则
sudo firewall-cmd --reload
复制代码

三、部署过程

在本次部署过程中,我们采用Nginx来实现负载均衡的功能,由于使用集群所以建议使用域名进行绑定,这样后期就算更换服务器也无需调整代码,下面是官方的集群架构图:

Spring Cloud Alibaba组件之--搭建生产可用的Nacos集群

1、初始化 MySQL 数据库

进入 Nacos/conf 目录,可以找到 nacos-mysql.sql ,将其导入到Mysql数据库中。

2、配置Nacos数据库连接

同样,进入 Nacos/conf 目录,可以找到 application.properties ,打开并编辑:

# 使用Mysql作为存储
spring.datasource.platform=mysql

有几个数据库实例

db.num=2

第1个实例的地址

db.url.0=jdbc:mysql://192.168.1.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

第2个实例的地址

复制代码

db.url.1=jdbc:mysql://192.168.1.2:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=nacos <span>复制代码</span>

1、生产环境Mysql至少要一主一从,所以要配置两个节点;
2、这个配置文件还有很多配置项,具体可以查看官网配置示例:https://github.com/alibaba/nacos/blob/master/distribution/conf/application.properties

3、配置集群配置文件

Nacos/conf 目录,还可以找到 cluster.conf.example 文件,复制一份出来并改名: cluster.conf

一定要配置3个或三个以上节点

# ip:port
10.133.1.3:8848
10.133.1.3:8849
10.133.1.3:8850
复制代码

4、修改端口号

Nacos的默认端口号是 8848 ,我们修改完上面的配置信息后,复制三份Nacos安装包,将其中两份安装包中的 conf/application.properties 文件中的中的 server.port=8848 分别改为:

server.port=8849
server.port=8850
复制代码

这样用端口号模拟的三个节点就准备完成了

5、启动Nacos

启动命令(在没有参数模式,是集群模式):

# 进入目录
cd Nacos/bin
# 启动
sh startup.sh
复制代码

6、配置Nginx

为Nginx增加nacos的配置文件,创建一个新的配置文件,命名为 nacos.conf ,内容如下,在主配置文件 nginx.conf 里面使用 include 的方式引入该配置文件即可:

upstream nacos-server {
  server 127.0.0.1:8848;
  server 127.0.0.1:8849;
  server 127.0.0.1:8850;
}
复制代码

server { listen 80; // 此处可以替换为自己生产给Nacos配置的域名 server_name nacos.hughpro.com; location /nacos/ { proxy_pass http://nacos-server/nacos/; } } 复制代码

include命令,打开主配置文件 nginx.conf ,假设 nacos.conf 放置在 /usr/local/nacos/conf/vhost/nacos.conf 目录:

……
http{
……
include /usr/local/nacos/conf/vhost/nacos.conf;
}
复制代码

Nginx的高可用搭建请参考官网:https://docs.nginx.com/nginx/admin-guide/high-availability/ha-keepalived/

7、访问

访问 http://nacos.hughpro.com/nacos 可看到Nacos的登录页,登录后即可正常使用Nacos。

8、Spring Cloud Alibaba 连接Nacos集群

spring:
  cloud:
    nacos:
      discovery:
        server-addr: nacos.hughpro.com
复制代码

四、参考文档

  • https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

  • https://nacos.io/zh-cn/docs/quick-start.html

  • https://github.com/alibaba/nacos/blob/master/distribution/conf/application.properties

原文  https://juejin.im/post/5eaffac3e51d454ddd679887
正文到此结束
Loading...