性能优化与扩展性

概述

提到性能问题,有两个词一定躲不开,大数据量和大并发。这两种情况如何处理?

  • 大数据量:一般的解决方案是动态加载/分页加载数据,设置数据库索引,设计数据库为读写分离的架构等等,所以如果一个 低代码平台 不支持数据库分页和动态加载,不支持设计数据库的结构,很难想象他们能够支持大数据量的情况;当然如果一个平台有此种设置,也不代表一定能支持大数据,但是至少有了可能性和操作空间。
  • 大并发:解决此问题的方案非常多,但其中最常用的技术方案是CDN和负载均衡,低代码平台是否支持此两种技术,也是他能否支持大并发的重要指标。

除此之外,将业务逻辑放到哪里执行对性能也会有重大影响。当我们设计复杂逻辑时,如果网速是瓶颈,一次请求逻辑全部在后端执行是一比较好的方式;如果服务器的压力比较大,此时很多逻辑希望放到前端执行;如果通过高级语言(C#,JAVA等)或者服务端命令,依旧无法满足性能要求,此时逻辑可以放到数据库端,执行存储过程或直接执行SQL功能,比较合适。本章节,我们将为您分享性能优化相关的最佳实践,帮您少走弯路。

活字格可以构建大容量事务性应用程序吗?

活字格服务端命令中支持事务命令

数据库事务是指单个数据表操作命令中执行的一系列操作,要么完全地执行,要么完全地不执行。 通过将一组相关操作组合为一个要么全部成功要么全部失败的命令,可以简化错误恢复并使应用程序更加可靠。

在活字格服务端命令中支持事务命令,用户可以在事务命令中添加多个数据表操作命令,如果在执行过程中因某种原因导致其中一条操作失败,则该事务命令将停止,已完成的操作也将会失效。使用事务命令能够保证数据的正确性。

活字格的事务命令

(活字格的事务命令)

活字格支持存储过程调用

存储过程是一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数来调用执行。活字格支持在服务端使用存储过程调用命令。支持MySQL、SQL Server、Oracle数据库的存储过程调用。

活字格的调用存储过程命令

(活字格的调用存储过程命令)

活字格支持后端执行SQL命令

由于我们目前封装的数据库操作命令只支持对表进行基本的DML操作,但是一些更为复杂的功能,比如,编写和调用存储过程、创建临时表、创建表索引、创建多个联合查询等,想要直接通过SQL语句来操作数据库,因而活字格也支持执行SQL命令,例如SQL Server,MySQL,Oracle,PostgreSQL等等都是支持的。并且相比较于数据表操作命令而言,使用SQL命令性能飞速提升。

执行SQL命令

(执行SQL命令)

用不同方式实现数据导入的用时对比

(用不同方式实现数据导入的用时对比)

活字格支持负载均衡吗?

活字格支持用户利用Nginx等负载均衡器来配置分发服务器。对于已经配置完成的服务器集群,活字格可以用以下方式保证所有服务器的数据一致性。

保持用户管理数据共通

活字格默认使用内置的SQLite数据库存储用户信息,同时也支持设置MySQL和SQLServer作为用户信息数据库来存储用户信息。这样,多台服务器上的用户就可以共用一套用户管理,保证多服务器用户管理数据共通。

用于支持负载均衡的用户信息数据库配置

(用于支持负载均衡的用户信息数据库配置)

保持所有应用的业务数据一致

这点在活字格中尤为简单,用户只需要使用外部的关系型数据库作为活字格的业务数据库,并保证所有集群服务器都可以连接到这台数据库服务器,即可保证所有应用的业务数据一致。

保持用户登录信息和应用版本一致

活字格支持将用户登录信息、应用版本、计划任务等公用信息及服务存储在 Redis 服务器上。多台服务器连接同一个Redis服务器时,自动共享登录状态、定时任务等信息,某一个应用重新发布时,会自动发布到其他负载均衡服务器上,保证应用版本一致。

活字格如何提供垂直可扩展性?

活字格部署时高度灵活,可以一键发布到局域网或云主机。本地服务器或云主机的硬件规格提升会直接垂直提升活字格应用的承载能力。

活字格可以处理繁重的批处理吗?

活字格的计划任务支持批处理作业的执行。批处理作业可以基于活字格内部或外部事件,或是通过可配置计划时间触发。计划任务在服务器上异步执行,负载分布由底层的应用调度服务控制。

在活字格设计器中创建计划任务

(在设计器中创建计划任务)

能否对页面加载性能进行优化?

作为成熟的 低代码平台,活字格生成的代码均经过优化,确保开发应用的性能要求,保证开发的应用稳定运行。如果您觉得页面加载速度不及预期,活字格提供了可选的性能优化配置,保证页面加载性能要求。

延时加载图片

活字格中的图片,默认采用延迟加载,即在页面加载完成之后再加载图片,从而减少首屏的白屏时间,提升页面打开速度。

延时加载图片的效果

(延时加载图片的效果)

表格组件提供按需加载功能

活字格的表格组件提供了按需加载的选项,可支持首屏加载数据条数设定,以及滚动加载条数设置,保证在大数据量下,能够按需加载,保证页面的加载性能。

同时活字格中图文列表组件,本质也是利用表格组件来实现,因而对于图文列表组件的显示,也能够支持首屏显示条目设置,以及滚动加载条目设置,保证数据量大的情况下只加载首屏数据,保证页面性能。

在活字格设计器中将表格设置为按需加载数据

(在设计器中将表格设置为按需加载数据)

CDN技术

CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络“边缘”的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。

简单的说,CDN的工作原理就是将源站的资源缓存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验。

使用活字格生成的代码也支持CDN,用户既可以将静态资源放到第三方的CDN服务器,也可以使用活字格提供的免费CDN服务器,从而提升页面加载性能。如果需要,请通过QQ群或技术社区的求助中心版块向我们寻求帮助。

点击访问技术社区