大型电商系统项目系统构架需要关注点
来源:www.sunseam.com 编辑:山海科技 日期:2016-04-02
有关业务分层拆分有关问题:
-
为了解决系统应用负载压力,应用服务程序、图片存储、数据库分离是怎样做分离处理?
2、将网站拆是否能拆分成多个应用,每个应用进行独立维护?
3、分层设计要求,将系统分成MVC层,对C进一步分成service层和Dao层,定义好层次边界和接口,便于合作开发和维护;方便分离部署
4、业务分割,是否对业务进行拆分?可否彼此之间低耦合,然后部署到单独的应用服务器上分布式
5、网站构架的伸缩性设计要求,一类需要达到物理分离实现伸缩,二类功能集群伸缩性。
1、是否抽能取出静态资源:如JS,CSS独立部署并有独立的域名分布式发布?
2、怎么做到分布式数据和存储?对传统数据库使用分布式、采用NoSQL
3、是否可以提供分布式计算?如:MapReduce方法?
1、设计过程中是否做到减少http请求,合并javascript css、图片,(如果每张独有不同的超链接,可通过css偏移响应鼠标点击操作,构造不同的URL)。
2、在代码中是否使用浏览器缓存技术,设置http头中的Cache-Control和Expires设定浏览器缓存,静态文件变化后:改变js文件名并更新html文件中的引用,更新静态资源时,采用批量更新的方法,比如更新10个图标文件,应一个文件一个文件逐步更新,并有一定时间间隔
3、是否启用压缩,对html css javaScript启动GZip压缩,但会对服务器产生压力
4、CDN加速设置
5、是否应用反向代理进行优化?
6、一般用户访问前端网页是否生成静态页面?无需太多跟数据库打交道?
-
数据库在程序程序设计时,怎么做到写入数据库服务器、查询数据库分离?
-
两个主从数据库怎么做到数据库同步,以及相互备份工作?
-
怎么做到解决数据库访问压力太大; 数据访问遵循2-8定律,如何将访问多的20%的数据放在缓存上,可分为应用服务器端的本地缓存和分布式的远端缓存
-
在使用缓存后,仍有部分读操作和全部写操作要访问数据库,随着规模的增大,这些操作造成数据库瓶颈?有何方法解决?
-
数据在大量高并情况下,是否使用消息列队列方式进行处理?如在搞大型促销活动时,一下子大量订单提交,会对系统造成巨大的冲击
-
单一服务器处理的请求链接成为瓶颈,怎么使用应用服务器集群,使用反向代理实现负载均衡、可用性监测、可伸缩的实现
-
分布式缓存应用设计,缓存设计是相互访问较高速度的存储介质,可以减少访问数据频率,现有系统是否应用于存储那些读写比率很高、变少很少的数据?如商品类目信息?热门搜索等?网站数据访问遵循2-8定律,如何将访问多的20%的数据放在缓存上,是否有将这些高频率业务数据进行抽取,进行特殊处理?
-
怎么有效管理缓存问题?如缓存资源分配、缓存数据清理?如何保证缓存数据的正确性?
-
目前是否取用分布式缓存架构设计?取用了何种技术构架进行设计?
-
提供自动化测试工具?能否做到一键完成系统部署、测试数据生成、测试执行、测试报告生成等全部测试过程。
-
怎么将预发布程序和实际生成机进行无缝对接?在更新过程中,怎样保证正在操作的数据信息不丢失?一些session仍是正常存在?
-
是否达到发布过程:自动化代码管理、自动化测试、自动化部署、自动化安全检测、运行过程:自动化监控、自动化报警、自动化失效转移和回复、自动化降级
-
性能测试指标:响应时间,并发数、吞吐量、系统性能计数器
-
提供性能分析报告
-
如何进行安全架构设计?
-
怎么做好一个大约1万参加的秒杀活动架构?需准备好哪些相关工作?
相关阅读