业务挑战
该企业是全球领先的基础设施综合服务商,主要从事基础设施的投资建设运营、装备制造、城市综合开发等,为客户提供投资融资、咨询规划、设计建造、管理运营解决方案和综合一体化服务。
该企业计划投产集团项目管理系统,打造项目上云、云上管理项目,对全国项目的资源、计划、成本、进度、协作、质量、风险等统一管理,实现集团所有项目信息的共享和协作,避免信息孤岛和重复录入,提高管理效能和准确性。将人工智能和大数据技术应用于项目管理,从而实现智能化的项目管理和决策。推动数字化转型和升级,从传统的手工管理和协作转变为数字化、智能化的管理和协作方式。适应快速变化的市场和业务环境,提高企业的竞争力和创新能力。
该项目管理系统涉及到 10 个业务系统的集成,具有 300 多个功能模块,数据量达 200TB,管理上万个工程项目,支撑 20 万用户的在线使用,系统具有海量数据、高并发特点,对数据库性能具有较高的要求,经过压力测试,使用集中式数据库集群无法达到性能要求,该企业最终确定使用 SphereEx 数据即服务平台,提升数据库性能。
方案亮点
- 海量数据、高并发场景:支撑 10 个业务系统,300 多个功能模块, 200TB 数据量, 20 万在线用户高并发操作。
- 低成本:经现场测试对比,SphereEx 对服务器设备的配置要求最低,不需要购买高端服务器设备。
- 实时监控:构建监测与度量体系,实时监控系统性能、数据库性能、SQL 性能、SQL 链路。
- 易管理:易观测、易扩展、易部署、易测试、安全自治。
- 稳定性:平稳、高效运行。
解决方案
通过 SphereEx 数据即服务平台优化 MySQL 数据库管理与使用,在保持业务逻辑与数据库使用模式不发生变化的前提下,实现了数据分片、负载动态调配、高可用,提升了应用与数据库线性扩展能力,提升了资源利用效率,降低了复杂业务查询时间。
1. 数据分片
本项目使用 SphereEx 数据分片技术提升数据库性能。数据分片(Data Sharding)是将单表中的数据分散地存放至多个数据库或表中,每个分片包含一部分数据。数据分片可以提高数据处理的性能、可扩展性和并行处理能力,从而满足现代数据处理需求。SphereEx 数据分片的拆分方式主要包括垂直分片和水平分片,SphereEx 支持使用一主多从、多主多从等数据库集群架构,可以有效的避免数据单点。
SphereEx数据分片的特点如下:
- 多种分片策略:SphereEx支持多种分片策略,包括垂直分片和水平分片。垂直分片按照业务逻辑将表进行归类,分布到不同的数据库中;水平分片则通过某个字段(或某几个字段)根据某种规则将数据分散至多个库或表中。
- 自动化管理:SphereEx能够自动化地管理数据分片,包括分片的创建、删除、合并等操作,降低了手动管理的复杂度和出错率。
- 高可用性:SphereEx提供了高可用性的机制,可以自动检测和处理数据库节点的故障,确保系统的连续性和可用性。在数据分片场景下,即使某个分片出现故障,系统也能迅速恢复服务。
- 负载均衡:SphereEx能够根据数据库负载和性能指标,动态地将请求分发到不同的数据库分片上,从而实现负载均衡和性能优化。这有助于避免某些分片过载而其他分片空闲的情况,提高系统的整体性能。
SphereEx数据分片的应用场景
- 高并发访问:在处理大量用户请求的场景中,SphereEx数据分片可以显著提高系统的并发处理能力,确保服务的稳定性和响应速度。
- 大数据量处理:在海量数据处理处理场景中,SphereEx数据分片可以将数据分散到多个节点上,提高数据的并行处理能力,降低处理时间。
- 业务扩展:随着业务的发展,数据量不断增加。SphereEx数据分片可以方便地扩展存储和处理能力,满足业务增长的需求。
2. 读写分离
本项目使用读写分离技术提升数据库并发能力。数据库读写分离是一种数据库架构设计策略,在这种架构中,主数据库(Master)负责处理所有的写操作(如INSERT、UPDATE、DELETE),而一个或多个从数据库(Slave)负责处理读操作(如SELECT)。通过将数据库的读操作和写操作分配到不同的数据库服务器上,可以减轻主数据库的负载,提高整个数据库系统的并发处理能力及扩展性。
SphereEx读写分离的特点:
- 灵活配置:在 SphereEx 中,用户可以根据业务需求灵活的进行读写分离配置,SphereEx 支持读写分离的独立使用,也支持读写分离与数据分片等功能配合使用,实现更复杂的数据库架构。
- 高可用性:SphereEx 读写分离模块具备高可用性,当主库出现故障时,能够自动感知数据库主从关系变化,自动切换计算节点对数据库的连接,确保服务的连续性。SphereEx支持一主多从、多主多从等配置方式,即使某个数据库实例宕机,也不会影响系统的正常运行。
- 负载均衡:SphereEx 读写分离模块支持负载均衡策略,可以根据从库的负载情况动态地将读请求分发到不同的从库上,实现负载均衡和性能优化。
SphereEx 读写分离的应用场景:
- 高并发访问:在需要处理大量用户请求的场景中,SphereEx 读写分离可以显著提高系统的并发处理能力,确保服务的稳定性和响应速度。
- 读写分离需求:对于业务系统中读操作远多于写操作的情况,使用SphereEx 读写分离可以分散数据库的负载,提高系统的性能。
3. 负载均衡
本项目使用负载均衡技术,确保数据库提供稳定、高效的服务。负载均衡(Load Balancing)是指将流量或计算负载均匀分配到多个服务器或资源上,以提高系统的可用性、性能和响应速度。SphereEx 具备负载均衡功能,可以根据数据库的负载和性能指标,动态地将请求分发到不同的数据库分片上,从而实现负载均衡和性能优化。
SphereEx的负载均衡功能主要通过以下方式实现:
- 动态请求分发:
- SphereEx 能够实时监控数据库的负载情况,包括 CPU 使用率、内存占用率、磁盘I/O等关键指标。
- 根据这些指标,SphereEx 可以动态地将请求分发到负载较低的数据库分片上,从而避免某些分片过载而其他分片空闲的情况。
- 智能算法支持:
- SphereEx 内置了多种负载均衡算法,如轮询、加权轮询、最少连接数等。
- 用户可以根据业务需求选择合适的算法,以实现更精细的流量控制和负载分配。
- 高可用性和容错性:
- SphereEx 提供了高可用性的机制,可以自动检测和处理数据库节点的故障。
- 当某个数据库节点出现故障时,SphereEx 会自动将其从负载均衡的候选节点中移除,并将请求分发到其他正常的节点上,从而确保系统的连续性和可用性。
SphereEx 负载均衡具有以下优势:
- 提高系统性能:
- 通过负载均衡,SphereEx 可以充分利用多个数据库分片的处理能力,提高系统的整体性能,应对高并发访问和大数据量处理的场景,确保系统在高负载情况下仍然能够保持稳定的性能。
- 优化资源利用:
- 负载均衡功能可以根据实际需求动态调整资源分配,避免资源浪费,降低运营成本,提高资源利用效率。
- 增强系统可靠性:
- 通过高可用性和容错性机制,SphereEx 可以确保在数据库节点出现故障时,系统仍然能够正常运行。
SphereEx 的负载均衡功能适用于多种应用场景,包括但不限于:
- 高并发访问:需要处理大量用户请求的场景。
- 大数据量处理:需要处理海量数据的场景。
4. 数据库高可用
本项目使用数据库高可用技术,确保数据库提供持续稳定的服务。高可用性(High Availability,HA)是指系统或组件在规定的时间内,按照预定的性能水平持续提供服务的能力。对于数据库系统而言,高可用性至关重要,因为它直接关系到业务的连续性和稳定性。在出现故障时,高可用性系统能够迅速恢复服务,从而确保服务的连续性。
SphereEx通过以下方式实现高可用性:
1)自动故障切换
- SphereEx 具备自动故障检测和切换的能力。当主库出现故障时,能够自动感知数据库主从关系变化,自动切换计算节点对数据库的连接,确保服务的连续性。
- SphereEx 支持一主多从、多主多从等配置方式,即使某个数据库实例宕机,也不会影响系统的正常运行。
2)负载均衡与资源优化
- SphereEx 通过负载均衡算法,将请求均匀分配到多个数据库节点上,避免了单个节点的过载。
- 同时,它还支持资源的动态扩展和缩减,根据实际需求调整系统的资源分配,提高了资源的利用率和系统的可扩展性。
3)监控与告警
- SphereEx 提供了全面的监控和告警功能,可以实时监控数据库系统的运行状态和性能指标。
- 当出现异常或潜在故障时,系统会及时发出告警,提醒运维人员进行处理,从而及时发现和解决潜在问题,避免故障的发生或扩大。
5. 应用高可用
本项目使用应用高可用技术,确保应用系统提供持续稳定的服务。应用系统集群高可用是指通过集群技术来提高应用系统的可用性和稳定性,确保在部分节点出现故障时,整个系统仍能持续提供服务。
应用服务器(节点)采用无状态设计,用户可以请求任何一个节点。负载均衡器根据集群中每个节点的负载情况,将用户请求转发到合适的节点上。当某个节点故障时,负载均衡器会将用户请求转发到另外的节点上,从而保证所有服务持续可用。
如果某个节点失效,它的备援节点能够快速接管,实现自动化的故障检查和业务切换。
6. 弹性伸缩
本项目使用了弹性伸缩技术动态管理资源。弹性伸缩是指根据需求动态扩展或缩减资源,SphereEx 弹性伸缩插件可以实现存储节点在线地扩容或缩容,使得数据库能够根据负载情况动态调整资源,确保高性能,避免资源浪费。
客户收益
- 性能显著提升:SphereEx 数据即服务平台投产后,经测算,单台服务器设备性能提升了 5 倍,查询速度提升了6倍,在线并发用户数提升 2.5 倍,总体成本降低约 50% ,实现了降本增效,有效支撑了项目管理系统的全面推广目标。
- 可持续扩展:系统性能具备线性持续扩展能力,能够根据业务量和用户量的增长,灵活地进行资源调配和性能优化。后续可根据实际需求,持续扩展系统性能,确保在业务增长的场景下,依然能够保持高效、稳定的运行,为用户提供流畅的使用体验。