不只是负载均衡,活字格智能集群的架构与搭建方案

发布时间:2023/01/05 09:01 发布者:葡萄城花卷

返回博客中心

还在单机服务器,时刻面临宕机风险吗?

优化程度不够,响应速度缓慢,系统工作响应像老汉拉车吗?

为了帮助大家具备企业级应用的部署能力,轻松应对核心业务系统的部署要求,我们准备了《活字格智能集群的架构与搭建方案》高级教程。

作为一款优秀的企业级低代码开发平台,活字格除了本身开发集成的强大功能之外,负载均衡的能力依旧手到擒来。如果你需要解决如下的问题,可以考虑搭建一套活字格智能集群:

l 提升系统可用性,避免因单台服务器宕机导致系统服务中断

l 在做好各项性能优化(参考系列教程)的前提下,需要进一步提升性能,以满足大并发量请求的响应速度

完美解决以上问题,看这一篇就够啦。


集群能力

活字格智能集群是我们官方提供的一套负载均衡解决方案,在传统的负载均衡集群提供的高可用性、高性能等优势的基础上,通过应用和配置的智能自动分发机制,进一步降低了集群的运维工作量,本方案提供的主要能力如下:

l 较高可用性(包含应用服务器的故障转出和故障迁回)

l 负载均衡

l 可用性监控

特别提示:活字格智能集群不兼容内建SQLite数据库,您需要在外联数据库上构建数据表和业务。

搭建方案

我们都知道活字格的功能有多强大,搭建活字格智能集群需要用到LinuxnginxRedisGlusterFSMySQL/MariaDB/MSSQL(您可以在PostgreSQLOracle等数据库上开发业务功能,但仍需要使用这几款数据库来存储用户信息,支持的具体版本可参考活字格的环境要求,本教程以mysql为例)。在监控服务方面,局域网项目可采用Zabbix,互联网项目则推荐采用云服务商提供的监控服务(本教程以阿里云的云监控为例)。对上述技术的了解程度,很大程度上决定了您搭建出的集群的安全性、性能和可用性。

角色一览

l 应用服务器:运行活字格应用,推荐安装在Linux(示例版本:Ubuntu 18.04,下同)上的活字格服务器管理器(示例版本:V8.0.4.0

l 反向代理服务:实现负载均衡等分发策略,安装在Linux上的nginx(示例版本:1.14

? 文件服务:存放活字格应用、用户上传文件等集群所需的文件,需要在多个应用服务器间共享,推荐安装在Linux上的GlusterFS(示例版本:3.132个节点)

l 用户信息数据库:存放用户、角色、权限等基础数据,推荐安装在Linux上的MySQL(示例版本:5.7

l 业务数据库:存放活字格应用所使用的业务数据,推荐安装在Linux上的MySQL(示例版本:5.7

l 缓存和分发数据库:存放Session会话数据,提供应用和配置同步所需的消息,推荐安装在Linux上的redis(示例版本:4.9

l 监控服务:确保第一时间能够发现服务器的故障,推荐阿里云的云监控服务


网络拓扑简图

活字格智能集群需要用到最少2台应用服务器,至少1台支持服务器(推荐视情况,将支持服务器中不同角色部署到不同的服务器上,包含nginxredismysqlglusterfs,共4个角色)、1台备用文件服务器和1个云监控服务。


Aspose.Words.4dc59b4b-e63e-462d-bff1-e743c33a46ca.002.png


(网络拓扑)

步骤1:部署应用服务器

在官网上获取活字格的安装脚本,分别在2台应用服务器上执行:

sudo rm -f huozige-installer-linux.tar && wget https://downloads.grapecity.com.cn/HuoZiGe/Linux/huozige-installer-linux.tar && tar -xvf huozige-installer-linux.tar && chmod +x installForguncy_cn.sh && ./installForguncy_cn.sh

因为示例不涉及服务端的PDFExcel导出,所以没有安装中文字体。

如果应用服务器基于云主机构建,需要开通以下入站/上行端口:

22345:活字格管理控制台、应用发布使用

8000-9000:推荐使用的活字格Web应用端口(国内云服务厂商需要备案后才能开通80/443/8080端口)

步骤2:部署和配置GlusterFS

GlusterFS可以尽最大可能避免出现因存储设备损坏带来的损失。用户上传文件、应用文件和数据库文件均推荐存储在GlusterFS等分布式存储,而不是NFSSAMBA等单节点存储。

在示例中,我们将支持服务器作为GlusterFS的主文件服务器,另外搭建一台备用文件服务器,用作实时热备。

2.1主文件服务器和备用文件服务器

首先,在主文件服务器和备用文件服务器上,更新apt-get源:

sudo apt-get update

然后,从apt-get安装glusterfs-server:

sudo apt-get install glusterfs-server

启动gluster服务,并设置为自启动:

sudo systemctl start glusterd

sudo systemctl enable glusterd

如果GlusterFS基于云主机构建,需要开通以下入站/上行端口:

24007-24008:GlusterFS管理端口

49152-49251:Gluster卷访问接口

在主文件服务器和备用文件服务器的磁盘上分别创建用来存储文件的本地文件夹。

sudo mkdir -p /gluster/data

在示例中,我们将支持服务器作为主服务器(172.31.9.34),在主服务器上链接备用文件服务器(172.31.15.58),然后基于两台服务器上的本地文件夹,创建共享的卷:volumn-hzg

sudo gluster peer probe 172.31.15.58

sudo gluster volume create volumn-hzg replica 2 172.31.9.34:/gluster/data 172.31.15.58:/gluster/data force

sudo gluster volume start volumn-hzg
GlusterFS
的服务器端配置完成了。

2.2:应用服务器

接下来切换到应用服务器,分别执行以下操作,更新apt-get,并且利用apt-get安装Gluster客户端。

sudo apt-get install glusterfs-client

将服务器上的文件夹挂在到本地之前,需要先创建“挂载点”,即本地的文件夹。这一点与NFS不同,GlusterFS的客户端不会自动创建挂载点。

sudo mkdir /share


修改配置文件,开机自动挂载主服务器提供的卷。在 /etc/fstab 中追加下方一行。

172.31.9.34:/volumn-hzg /share glusterfs defaults 0 0

重新加载fstab文件,即完成文件挂载。

sudo mount -a

步骤3:部署MySQL

在支持服务器上,更新apt-get

sudo apt-get update

然后,从apt-get安装mysql:

sudo apt-get install mysql-server

安装完成后,启动mysql:

sudo systemctl start mysql

使用内建的mysql客户端登录mysql:

sudo mysql -uroot -p

默认情况下,root没有密码,绑定的是当前服务器的root权限,所以也就无需输入密码。执行SQL语句,设置应用服务器有权访问的账号。您可以直接使用root作为外网访问账号,也可以创建一个新的用户。在测试和学习阶段,推荐直接为root开放外网访问,便于使用设计器、mysql workbrench等可视化工具对数据进行查询和操作;生产环境则推荐创建专门的用户,并控制可访问的IP地址(如仅允许应用服务器),以策安全。

CREATE USER 'root'@'%' IDENTIFIED BY '{新的数据库密码}';GRANT ALL ON *.* TO 'root'@'%';flush privileges;

再执行创建用户信息数据库的SQL语句。

CREATE DATABASE userservicedb;



MySQL 5.7
默认仅监听本地端口,需要修改配置文件才能提供给其他机器访问。MySQL的配置文件很多,推荐修改/etc/mysql/my.cnf文件。在文件的最后,追加以下内容:

bind-address=0.0.0.0 #全部地址或者指定的ip地址

如果MySQL基于云主机构建,需要开通以下入站/上行端口:

· 3306:MySQL默认端口


重要提示:在生产环境中,请把MySQL的文件存储至GlusterFS,而不是本地磁盘。查看教程(来自CSDN

步骤4:部署Redis

在支持服务器上,更新apt-get源:

sudo apt-get update

然后,从apt-get安装redis:

sudo apt-get install redis

Redis默认不允许其他机器访问,需要修改配置文件:/etc/redis/redis.conf。配置文件比较大,可通过vim的查找功能,定位需要修改的点:

查找bind 127.0.0.1 ::1,在前面加上#,注释掉这一行。2. 查找protected-mode,把yes修改为no

修改配置文件后,重启redis服务。

sudo systemctl restart redis-server

如果Redis基于云主机构建,需要开通以下入站/上行端口:


活字格企业级低代码开发平台 | 下载试用

活字格 是葡萄城基于在专业控件领域 40 年的技术积累而推出的企业级低代码开发平台 ,由简单易用的可视化设计器和部署灵活的服务器构成,能帮助开发人员、IT 技术人员和业务人员快速构建美观易用、架构专业、安全可控的企业级多终端应用,并随需而变。活字格高度开放灵活,支持云部署和本地部署,能与微信、钉钉及各行业应用软件无缝集成,并可对接智能硬件、AI 等技术,全面支撑核心业务系统开发。

了解更多关于活字格企业级低代码开发平台内容,请点击此处访问官网,立即下载体验。