大型互联网应用系统技术方案
大型互联网应用系统又可分为几个子系统:
Web 前端应用系统
负载均衡系统
数据库集群系统
应用缓存系统
分布式存储系统
分布式服务器管理系统
代码托管与持续发布系统
数据库集群系统
由于 Web 前端采用了负载均衡集群结构提高了服务的有效性和扩展性,因此数据库必须也是高可靠、高可用的,才能保证整个服务体系的高可靠性,如何构建一个高可靠的并可以提供大规模并发处理的数据库体系?
我们可以采用如上图所示的方案:
(1)、 使用 MySQL 数据库,考虑到 Web 应用的数据库读多写少的特点,我们主要对读数据库做了优化,提供专用的读数据库和写数据库,在应用程序中实现读操作和写操作分别访问不同的数据库。
(2)、 使用 MySQL Replication 机制实现快速将主库(写库) 的数据库复制到从库(读库) 。一个主库对应多个从库,主库数据实时同步到从库。
(3)、 写数据库(主库)有多台,每台都可以提供多个应用共同使用,这样可以解决写库的性能瓶颈问题和单点故障问题。
(4)、 读数据库(备库)有多台,通过负载均衡设备实现负载均衡,从而达到读数据库的高性能、高可靠和高可扩展性。
(5)、 数据库服务器和应用服务器分离。
(6)、 从数据库使用 LVS、HaProxy、BigIP 做负载均衡。
应用缓存系统
应用缓存分为文件缓存、内存缓存、数据库缓存。在大型 Web 应用中使用最多且效率最高的是内存缓存。最常用的内存缓存工具是 Memcached。使用正确的缓存系统可以达到实现以下目标:
(1)、使用缓存系统可以提高访问效率,提高服务器吞吐能力,改善用户体验。
(2)、减轻对数据库及存储集服务器的访问压力。
(3)、Memcached 服务器有多台,避免单点故障,提供高可靠性和可扩展性,提高性能。
分布式存储系统
Web 系统平台中的存储需求有下面两个特点:
(1)、存储量很大,经常会达到单台服务器无法提供的规模,比如相册、视频等应用。因此需要专业的大规模存储系统。
(2)、负载均衡 cluster 中的每个节点都有可能访问任何一个数据对象,每个节点对数据的处理也能被其他节点共享,因此这些节点要操作的数据从逻辑上看只能是一个整体,不是各自独立的数据资源。
因此高性能的分布式存储系统对于大型网站应用来说是非常重要的一环。
评论