高性能应用解决方案
从OA协同办公软件产品出现,协同办公市场发展迅速,协同办公应用在全球范围内得以迅速普及,协同办公软件产品的功能不断增强,易用性不断提高,维护成本和难度在不断减低,性价比不断提升。
纵观整个协同办公市场,目前的协同办公产品普遍是面向中小型企事业单位,存在可扩展性差、健壮性差等问题。随着企业和业务的快速发展,协同办公应用面临以下的问题:
人数逐渐增多
应用更加复杂
应用逐渐增多
数据量迅速增大
单服务器和操作系统性能瓶颈
系统宕机、崩溃
如果以上问题不能及时得到有效解决,则会给企业发展带来严重威胁:
系统出现瓶颈,使用体验变差
办公效率降低、员工积极性降低
业务发展受到制约
数据丢失、工作停滞
二、解决方案概述
经过十年的总结、积累和探索,通达OA提供了一个针对这些问题的解决方案,经过实践检验,可以有效解决以上的所有问题。
规模迅速扩大
业务迅速增长的企业
应用迅速增加的企业
人员数量超大的集团企业
传统的协同办公方案大多是针对用户数不超过3000人,并发在线不超过1000人的中小型企业,本方案主要针对大用户量、大访问量、大数据量的协同办公应用设计,设计的承载能力为总用户数3000人以上,并发在线人数1000人以上。
为了提高各种应用指标,降低系统建设成本,本方案主要基于Linux进行部署,并使用Windows平台进行辅助配合,达到最高性能、最大可扩展性、最佳稳定性、最低成本的目的。
高性能
本方案采用应用最广泛的LAMP(Linux + Apache + MySQL + PHP)的架构,由多台Web服务器和多台MySQL数据库服务器组成一个服务器集群,为用户访问提供服务,突破单服务器的硬件和操作系统的瓶颈,达到高性能的目的。
高可用
LVS(Linux Virtual Server)是一种在互联网上被广泛采用的负载均衡技术,已经被实践证明具有高效率、高可靠等特点。
采用LVS对多台Web服务器进行负载均衡,当其中一台或几台Web服务器出现故障时,其它Web服务器仍然可以替代故障的服务器对用户访问提供服务,达到服务不中断的目的。
多台MySQL服务器采用主从复制或集群模式,也由LVS提供负载均衡,每台MySQL服务器上都会存储一份完整的数据库,如果其中的一台或多台MySQL服务器出现故障或数据丢失,其它的服务器会继续提供服务,并且保证数据的完整和安全。
易扩展
随着人员规模的增加和应用的增加,可以简单的通过增加Web服务器和MySQL数据库服务器的方式提高系统的负载能力,在不停服务、不停应用的情况下,以一种非常便捷、高效的方式增加系统的负载能力。
低成本
本方案中使用到的软件几乎全部为开源软件,大大降低了软件的采购成本,硬件上也不需要使用小型机等高端服务器,只需要普通的服务器即可,从而大大降低了硬件的采购成本。
三、负载均衡集群架构及实现
集群架构共包含六部分:LVS负载均衡服务器、Web服务器集群、MySQL服务器集群、缓存服务器集群、即时通讯服务器集群和文件服务器。如下图所示:
LVS负载均衡服务器
由两台服务器安装LVS服务和相关管理配置界面,为Web服务器集群和MySQL服务器集群提供负载均衡服务,其中一台用做热备,在其中一台出现故障时为用户访问提供负载均衡服务。
Web服务器集群
Web服务器集群由2台以上真实Web服务器组成,由LVS提供负载均衡,操作系统均为Linux。预计每台Web 服务器可以支持1000个左右在线人员。Web 服务器数量可以自由扩展,以适应不断增长的业务需要。
MySQL服务器集群
MySQL服务器集群可采用主从复制或Cluster两种方式:
主从复制模式由1台主服务器和1台以上从服务器组成。Web服务器更新数据库的操作访问MySQL主服务器,查询操作访问从服务器。主服务器的数据更新通过MySQL复制的方式更新到从服务器,从而达到从服务器和主服务器数据同步的目的。查询操作通过LVS进行负载均衡,从而使查询操作负载到所有主从服务器,提高并发性能。
Cluster模式使用MySQL Cluster技术,如下图所示:
整个集群由2台控制服务器、2台以上查询服务器和4台数据存储服务器组成。查询服务器面对Web服务器提供数据库操作服务;4台存储服务器分为2组,每组2个节点,2个节点各存储一部分数据,2组服务器之间互为同步(也起到互为备份的作用);控制服务器负责查询服务器和数据存储服务器的连接,也负责数据存储服务器之间数据的同步。
从上述说明可以看出,主从复制和集群模式都会将数据库数据保存两份以上,既解决了大查询量的性能瓶颈,又解决了因系统故障导致数据丢失的问题。
缓存服务器集群
缓存服务器集群有1台或多台服务器组成,采用Memcached作为服务程序,将访问集中、访问量大、近期的数据缓存在内存中,实现常用数据快速存取,降低系统资源占用,提高用户访问速度,提升用户体验。
即时通讯服务器集群
即时通讯服务器集群采用一台Windows服务器,多进程+多端口的方式。整个集群由一个控制进程和多个真实进程组成,用户登录时由控制进程提供负载均衡,将用户连接负载到不同的真实进程,不同进程之间的用户发送信息则需要通过控制进程进行,控制进程通过优化控制,将最常联系的用户负载到相同的进程,大大降低真实进程和控制进程之间的通信,提高系统性能和稳定性。
整个即时通讯服务器集群的部署,除了采取单服务器多进程的方式外,还可以采取多服务器的方式,把不同的真实进程部署到不同的服务器,从而达到更高并发量的目的。
文件服务器
文件服务器为一台Linux服务器,通过NFS服务对Web服务器提供服务,所有客户端上传的文件都直接保存到文件服务器上。文件服务器可以挂接磁盘阵列柜,提高存储容量,提高大量文件读写的性能。
三、方案实施规划
首先需要根据客户具体的人员规模、应用情况、业务需求等进行调研,制定出一个效率最佳、成本最低的方案,并针对这些具体情况进行集群设计,根据业务需求确定程序开发的内容,评估工作量,待双方确定开发方案后开始开发工作。
根据前一阶段确定的方案,搭建和调试集群环境,并部署前一阶段开发的程序,进行联合调试和功能测试,并模拟用户的人员规模和应用规模进行压力测试,根据测试结果调整参数设置进行优化,或对硬件服务器进行扩充增加负载能力。同时对管理员进行后期系统维护的培训。
试运行阶段先由一部分员工上线使用,逐步扩展到全部人员,观察系统运行情况,优化系统性能。业务功能也逐步开放,根据使用情况进行微调。
系统运行稳定后,定期检查数据备份,做好灾备工作。同时制定后期扩展方案,在需要时随时对集群进行扩容,增加整个系统的负载能力。