大型电商项目的服务器端大型电商项目的服务器端

为君一笑 提交于 2019-12-31 17:50:19

  一般来说大型电商项目的服务端架构会包含一些安全体系系统,例如数据安全体系、应用安全体系、前端安全体系等。其次局势业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。以及共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。同时包含中间件服务,如MQS即队列服务,OCS即缓存服务等。对服务器底层支持要求满足高可用、实现双机房容灾和异地机房单元化部署,高效和易于维护的基础架构支撑。

一开始的时候,用户体量还没有这么高的时候,一台单独的服务器就可以满足业务需求了。文件服务器,数据库,还有应用都部署在一台机器。

随着业务增长,用户越来越多,访问越来越大,服务器的CPU、内存、硬盘等无法承载,这时候可以将数据服务与应用服务分离。给数据服务和应用服务分离,可以有效的进行配置,给应用服务器配置更好的cpu和内存,给数据服务器配置读写速度快,容量大的硬盘。

使用缓存包括本地缓存、远程缓存、远程分布式缓存的方式不用所有的业务每次都从数据库获取数据,这样可以降低接口访问时间,提高服务性能和并发。当然我们还需要考虑分析,哪类的业务特点数据使用缓存。分类在细致一些就是那些业务特点的数据使用本地,那些使用远程缓存。分布式缓存扩容的时候需要注意那些方面等等

当用户体量级别到达一定程度的时候,并发访问一定会很高,服务器的处理能力有一定的上限。此时,我们要考虑到服务器的集群来横向扩展,负载均衡调度服务器。负载均衡在之前的文章中有提到,这里不详细介绍了。

因为数据库的读及写操作都需要经过数据库。当用户量达到一定量,数据库会达到上限。此时我们需要将数据库读写操作分离,使用数据库提供的热备功能,将所有的读操作引入slave 服务器,同时因为数据库的读写分离,所以我们的应用程序也得做出相应的变化。我们实现了一个数据访问模块,上层程序并不知道读写分离的存在。这样多数据源读写分离就对业务代码没有了侵入。同时这里引出了代码层次的演变。将数据库读写分离需要注意在master和slave复制的时候,延时问题、数据库的支持、复制条件的支持。同时如果数据库分机房后,跨机房传输同步数据,这也要规划。使用 CDN节点 可以很好地解决不同的地区的访问速度问题,反向代理则在服务器机房中缓存用户资源。

各个服务的技术架构需要根据自己业务特点进行优化和演进,所以大家的过程也不完全相同。因为在架构演进的过程中,还要考虑系统的安全性、数据分析、监控、反作弊等,同时往后继续发展,也要考虑到SOA架构、服务化、消息队列、任务调度、多机房等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!