打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
百万级Web商城架构
百万级Web商城架构


一、    架构图设计

二、    总体概述
       架构的设计,初期刚刚上线,数据量没有那么大,服务器压力也就没那么大,因为考虑到以后的业务发展,就会有更高的访问量,数据的读写也会非常频繁,对存储系统的要求和网络带宽也会越来越高,而我们要设计的是金融机构的服务器架构,所以对于数据安全的保障,数据的实时同步性,保证数据的可靠,服务带宽的要求是非常高的,因为金融涉及到大量的数据交易,所以数据不能丢失,并且要实时同步到账,架构设计要考虑到以后的扩展,在需要扩展服务器时可以方便的添加服务器,减小服务器的压力。


说明:本次设计针对的电商网站的后台服务器架构,而前端的页面实现,市场定位等不在本次设计的包含范围内。
1、项目简介
       任何一个大型网站都是经历用户积累然后成长,从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。不同类型的网站由于实现的功能,面向的用户不同,系统架构也有所不同。但是尽管如此我们也可以从这些不同的网站背景下,找出其中共用的技术,这些技术和手段可以广泛运行在大型网站系统的架构中。
2、项目需求
电商网站的架构要考虑的因素众多,总的来说有两方面的需求:
2.1 网站响应速度
网站速度直接决定用户的体验,客户端的带宽不同是我们无法控制的,但是可以通过设置智能DNS,反向代理,告诉缓存提高网站的响应速度。
2.2 数据的安全性
为保障数据安全,合理设计数据库的读写比例,必要的远程备份和异地容灾。使用负载均衡技术缓解网站高峰期访问的压力。


3、设计原则
3.1 可靠性
       系统的可靠性值得是在规定时间规定环境下完成规定功能的能力,也就是系统的无故障运行概率。系统的可靠运行是保证生产效率的基础。一个系统的可靠性并不完全取决于硬件,而由软件和硬件共同来决定,如果是软件问题,最好的解决办法就是打补丁、升级,再好的硬件也没有办法解决软件的问题。要提高系统的可靠性,软件是没有太好办法的,只有依靠厂商服务来解决问题。用户可以选择的只有硬件,其中,包括网络、服务器以及存储设备。其中,网络可以借助多运营商接入来解决,存储有RAID、快照等应对技术,通过备份来提高数据安全性。
3.2 安全性
       保障系统架构的安全性的重要性是毋庸置疑的。一旦造成数据丢失或者数据泄露给企业造成的影响可能是毁灭性的的。如何保证系统稳定高效的运行同时防范外来恶意攻击与病毒、木马等。一致的安全策略都是成套使用的。如进行数据加密,灾难备份与恢复,同时有必要购买硬件安全设备如硬件防火墙等。
3.3 可扩展性
       系统机构不可能一开始就实现能够满足并发百万、千万的访问级别,而是随着企业业务量的提高逐步扩展。所以说,最初设计的架构要考虑到以后扩容的要求。因为相对于购买新的服务器,购买新的模块更利于节省投入。
3.4 先进性
       先进性原则指的是系统架构业务需求外,采用的操作系统以及采取的架构技术要能跟得上时代发展。总体来说系统的先进性要求是高可用、安全性、可扩展的总称。


三、项目准备
   3.1 准备项目所需环境
       确认所需的软件资源,确定所需的Linux系统类型,一般是centos6.x系列。同时准备安装服务所需的软件包,必要使用的源码包。
   3.2 准备系统环境
   a、关闭防火墙和SELinux
   b、规划网络方案,进行IP地址和子网划分
   c、根据服务器的角色定制需要使用的软件包。如:dhcp、bind、vsftpd、httpd等
3.2 具体实施过程
3.2.1 总体分析
a、实现应用程序,数据库和文件存储的分离,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。
b、利用缓存改善网站性能,将用户访问频率高的数据进行缓存。大部分的网站访问都遵循28原则,即80%的访问请求最终落在20%的数据上,所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。
c、使用集群改善应用服务器性能。应用服务器作为网站的入口,会承担大量的请求,通过应用服务器集群来分担请求数压力巨大。需要在应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。
d、数据库读写分离和分库分表。利用amoeba数据库中间件实现对MySQL数据库的读写分离,通过设置合理的读写比例,减小数据库的存取压力。同时将数据量庞大的库和表根据用户类别和业务的差别进行水平拆分和垂直拆分。


3.2.2 构建企业网站和应用平台
       网站是电商业务的核心,承担着大量的用户访问压力,有必要在web服务器之前对用户访问进行预处理,可以通过配置智能DNS提高域名的解析速度,配置LVS-DR-keepalived负载均衡保障网站稳定高效运行,一旦出现故障时,容错机制的存在不至于影响网站的访问。
a、配置web站点
      web站点基于LAMP的基础环境,所以第一步就是安装软件包,此处要选择源码包安装,因为相对于RPM包,源码包安装的LAMP环境能性能更好,能处理更多的用户请求。
安装完成后配置基于域名的虚拟主机,用户可以直接输入域名访问。
b、配置智能DNS服务器和代理服务器
      目前网络用户的来源主要有网通、电信和教育线路,而智能DNS能够判断用户来源,让用户访问和其在同一运营商的服务器,或者最近的服务器,能够实现快速解析,提高网站的访问速度。
搭建职能DNS还可以采用成型化的产品如F5、西默智能DNS等硬件产品,好处是不需要手工进行复杂的配置,不足是需要额外的硬件成本投入。
       当用户请求达到时首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户,如果没有没有缓存数据才会继续走应用服务器获取,也减少了获取数据的成本。代理服务器使用squid,代替网络用户去读取web资源同时将用户访问量大的数据缓存到代理服务器中。


c、配置LVS-DR-keepalived
       负载均衡由负载调度器,服务器池和共享存储组成。本例中负载调度器是两台调度服务器,采用keepalived实现故障自动切换和节点健康状态检查。正常工作时,主调度服务器起作用,从调度服务器不起作用;主调度服务器出现故障后,从调度服务器顶替主调度服务器的位置。此时管理员能够对出错的调度服务器进行故障检测,免去了因调度服务器故障带来的系统的损耗。
服务器节点是3台web服务器和3台数据库服务器
存储采用iscsi方式的共享存储


3.2.3 构建数据库服务器系统
a、读写分离
       两台数据库服务器和一台代理服务器,代理服务器用于部署数据库中间件amoeba。选用两台数据库服务器是为了数据库的备份考虑的,通过配置实现主从同步,保持两台数据库服务器的数据一致。amoeba服务器能够设置两台服务器的读写比例,主服务器承担用户的写入操作,从数据库服务器承担查询操作。通过读写分离能够提高数据库查询效率的以及高峰期负载压力大时的运行稳定性。


b、备份容灾恢复
       从数据安全的角度来说,服务器磁盘都会做raid,MySQL本身也有主从、drbd等容灾机制,但它们都无法完全取代备份。容灾和高可用能帮我们 有效的应对物理的、硬件的、机械的故障,而对我们犯下的逻辑错误却无能为力。每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就 放大成很大的安全隐患,这时候备份的必要性就凸显了。
       MySQL本身为我们提供了mysqldump、mysqlbinlog远程备份工具,percona也为我们提供了强大的Xtrabackup, 加上开源的mydumper,还有基于主从同步的延迟备份、从库冷备等方式,以及基于文件系统快照的备份,其实选择已经多到眼花缭乱。而备份本身是为了恢 复,所以能够让我们在出现故障后迅速、准确恢复的备份方式,就是最适合我们的
c、分布式文件存储系统
       通过iscsi实现分布式文件存储。SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。


3.2.4 构建企业服务器管理监控系统
a、配置OpenSSH服务器,以便实现远程登录管理
       电商网站的服务器是需要7*24不间断的提供服务。若服务器夜间出现故障,需要管理员进行故障检测。赶到公司是不现实的,需要能够使用公网连接公司的内网服务器。搭建openssh服务器,实现远程的登录管理,同时使用VPN通过对数据包的加密和数据包目标地址的转换实现远程访问,保证连接与传输过程的安全性。


b、配置cacti+nagios+ntop实现主机、服务以及网络流量监控
       cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
Nagios是开源的网络监控工具,主要用于监控主机或服务的状态,并在主机或服务出现故障时发送报警邮件或短信通知管理员,在状态恢复正常后发送正常的邮件或短信通知。
ntop是网络流量监控工具,用ntop显示网络的使用情况比其他一些网络管理软件更加直观、详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。
cacti和nagios默认是独立安装的,但是通过ntop可以将nagios当做cacti的插件显示在cacti管理界面中。实现实时监控,帮助管理员第一时间发现并排除故障。


3.2.5 安全防护
a、防火墙规则的设置
设置SNAT规则实现内网用户共享上网
设置DNAT规则实现外网用户访问内网的web服务器
b、安全硬件产品
除了服务器和软件架构外,若为了追求更高的安全性有必要了解相关的安全硬件产品,像是硬件防火墙、负载均衡设备等等,根据预算合理采购。




四、项目总结
       网站的整体架构已经搭建出来了,但是理论还需要实践的检验。另外通过这个项目我也真正的感觉到系统架构师在架构系统是需要考虑到各个方面的问题。不仅仅是技术方面的问题,包括服务器的选型,企业的投入预算,网站的类型(电商、视频、游戏等等)、网站初期的用户量等等,需要平衡各方面因素,而不是一味的使用最新的系统版本,采用最先进的技术。适合自己的才是最好的,一个好的架构师是随着公司业务量的增长而逐步成长起来的。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
运维主要分为哪几类?主要职责是什么?
如何选择最合适的服务器方案(一):服务器硬件配置
百万级访问量网站的技术准备工作
【秘诀】b2b2c电商网站建设如何构建系统架构
实战体验几种MySQL Cluster方案
案例分享丨基于共享数据中心的容灾体系建设
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服