大型电子商务网站架构

news/2024/5/20 12:29:20/文章来源:https://blog.csdn.net/acuna1/article/details/7204755

大型电子商务网站架构

(转自:http://www.cnblogs.com/skydau/archive/2009/08/30/1556701.html)

7.同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别?===客户是自己公司,使用标准方法即可
8.电子商务网站最多的就是 商品的打折方式和积分的赠送了,这里要怎么设计才好(工厂模式)?===采购成熟的规则引擎
9.如果同一时间并发大量订单的话,如果确保一个订单的有效提交呢?
==电子商务一般要使用MQ,推荐IBM MQ;使用MSMQ也可


第一点是数据库要设计好,要达到什么级别,你可能需要考虑哪些表需要拆分,哪些表的核心数据需要冗余,如果是mysql,还要考虑其他的问题,比如存储引擎。
新闻肯定是要生成纯静态页,对数据库压力就小很多,不过静态页也有管理上的不方便,更新删除添加都要对磁盘文件进行操作
做一个自定义缓存层,对缓存逻辑进行控制,可以采用第三方缓存模块,如果使用.net来做,可以层层缓存,页面缓存,数据缓存(memcache,不过在win下效率不高)
电子商务网站特点就是对事务的严格,需要数据库设计的时候要求高性能,也需要合适的索引,支持高并发,经常对产品表用户表等进行索引检查,是否有很多索引扫描和表扫描(即使是局部的,也要将“局部”控制到最小范围)
mssql语句对不需要事务的查询要附带上with(nolock),以利于并发更新。
有些功能模块不能按照想当然的方式开发,比如产品访问次数,切不可将这些更新非常频繁的字段置于核心表内,明确的做法是将其剥离开来

还有就是切不可经常性将字段设计成bool类型,这样会给以后的扩展留出路,即使是男女这种字段,也建议采用tiny类型


其他还有就是在产品设计的时候充分考虑seo,网站目录结构清晰可读,而不是带着一串串的查询参数。
对安全要有整体的把握,最好全都是用存储过程,在项目上线前将数据库存储过程全部导出再查找貌似exec的语句,查找是否需要替换成sp_executesql。
另外,如果采用mssql,全文搜索直接用mssql fte就可以,速度和精确度都还是可以的,最重要的是维护和管理开发很简单。
打折的处理可以按照电信的一次,二次批价功能,如果你做过电信方面的系统。
当然也可以设计得更简单的一些。

静态的页面建议使用CDN加速,以解决网通和电信之间访问速度的问题;
数据的缓存方面建议考虑用memcache,另外也可以分别在表现层和数据层利用.net中的现存缓存机制作业可;
简单执行的sql可以不用存储过程,存储过程会占用数据库服务器的处理时间,造成死锁;
mvc建议还是做些CMS的项目上应用,电子商城不是很适合,个人观点。url上可以做转义,使url显示更友好;
数据库建议建立分布数据库,这样可以转移查询和大访问量对数据库带来压力;
图片可以考虑单独放在一台服务器上;

1.三层架构
2.使用手写sql,手写entity(生成也可),缓存反射绑定(不是缓存数据哦,缓存映射关系),要考虑网站的长期发展还是手写吧 灵活 性能也好
3.没有这种问题,商业驱动的,纯购物就好了,千万别搞什么圈子,wiki
4.纯.net的mvc不建议,webform不搞viewstate,不搞服务端控件(除repeater)再加点mvc的思想已足够用了
5.不需要缓存数据(除搜索产品部分),要考虑多台服务器的程序快速部署,config文件会很多,config要序列化缓存
6.当然是先生成好了,参照jd吧,按业务每张图片对应几个不同大小的图
7.据经验,电子商务网站仅靠中英双语来达到多语言是不靠谱的(文化 用户习惯不是简单的语言切换),如果想真正运营英语的就要重新开发一个版本
8.不搞模式
9.负载均衡(web,db)+ssb异步处理数据
10.你是业务类型的日志还是异常日志? 前台订单流程上异常日志不需要了,找个工具录个脚本不停的跑 保证随时发现问题发邮件就可以了
11.找第三方搜索组件 类似endeca的
12.负载均衡挺简单的,初期靠软件就可以,一切图片找第三方放cdn,前台网站用到ajax的地方很少,如果用的话jquery

1,一个电子商务网站用户99.5%的行为时Find
2、对于商品检索部分,能不用数据库就不用数据库(网上切词等相关的开源平台很多)
3、分布式缓存(Memcached 、Volecity),个人测试volecity 3还是不错的
4、系统设计时必须要考虑可运营。从这个角度去设计系统
5、对于电子商务网站改动很频繁,必须考虑架构设计如何适应频繁的版本更新
6、必须设计一个好的单点登录系统。
7、建议能不用sqlserver就不用它。
8、对于大型电子商务网站来说,系统的I/O是起决定因素而不是CPU和内存。

1.项目划分是否会有问题,图中分别是 实体层,数据访问接口层,数据访问层,业务逻辑接口层,业务逻辑,网站A,B,C
项目划分其实不重要,重要的的是你在写代码的时候是否能把代码合理的分到对应的项目里。
2.数据访问层是要开发效率(NBear,Linq,Nh等),还是访问效率(直接使用sql等)?是否可以先使用开发效率高的,等日后访问量大了,再重写并替换数据访问层?
开发效率优先,访问量大了以后,我相信是有钱投到硬件上的,在你程序写的不是很烂的情况下,升级硬件远比优化程序节省成本。
3.网站被切割成了多个子网站,有一些控件(如header,footer)是要共享的,如何跨网站项目共享这些控件呢?
那就做成自定义控件啦。
4.ms的mvc 1.0也出来不少时间了,是否已经够成熟运用到项目中?或者是网站后台使用webform的,前台使用mvc?
推荐使用使用webform的,前台使用mvc,对于前台来说使用mvc能更好的提升性能,更方便的更换页面表现形式。后台界面相对稳定,用webform可以提高开发效率。
5.网站数据的缓存是自己开发一个hashtable什么的来维护呢,还是使用Memcached ?
初期建议用hashtable,因为简单,将来升级到Memcached 。
6.缩略图的处理,我看有的网站是在上传图片的时候直接生成,有的是在httpmodle里处理,访问的时候生成.
直接生成缩略图的好处是节约性能。httpmodle相反,每次浏览图片的时候都会生成新的图片,服务器压力大,建议直接生成。
7.同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别?
多语言建议使用asp.net自带的资源文件的方式实现,当前语言保存在cookie里面。
8.电子商务网站最多的就是 商品的打折方式和积分的赠送了,这里要怎么设计才好(工厂模式)?
规则引擎
9.如果同一时间并发大量订单的话,如果确保一个订单的有效提交呢?
使用MQ队列
10.日志方面,log4net?
log4net只能记录程序运行日志,主要目的是用来调试程序的,系统业务操作日志还你是得自己建一个表来保存。
11.电子商务的全文检索,这也是个头疼的问题
lucene,微软索引服务,sqlserver全文检索,方案很多的。
12.负载均衡方面,有什么好的文章推荐码?
可以看windows 2003 集群方面的文章

1.项目划分是否会有问题,图中分别是 实体层,数据访问接口层,数据访问层,业务逻辑接口层,业务逻辑,网站A,B,C
目前我也是这样分的,不过当数据表结构有修改时,会带动其它层的联级修改,非常不方便,所以开发之前最好将数据库设计地完善一点。另外,当网站分成多个以后,其它项目生成的DLL文件要部署到每个网站的bin文件夹里,更新一次都要重新部署,这也是个挺烦人的事,当然可以将DLL部署到GAC里来解决这个问题,不过这样的话本地调试起来就不太方便了,因为项目一有改动,就要将生成的DLL重新拷贝到GAC里才能看到效果。
2.数据访问层是要开发效率(NBear,Linq,Nh等),还是访问效率(直接使用sql等)?是否可以先使用开发效率高的,等日后访问量大了,再重写并替换数据访问层?
这个我也在考虑。目前我还没有采用ORM框架,都是在DAL里直接访问DB的。
3.网站被切割成了多个子网站,有一些控件(如header,footer)是要共享的,如何跨网站项目共享这些控件呢?
自定义控件。
4.ms的mvc 1.0也出来不少时间了,是否已经够成熟运用到项目中?或者是网站后台使用webform的,前台使用mvc?
正在学习这一块。
5.网站数据的缓存是自己开发一个hashtable什么的来维护呢,还是使用Memcached ?
现在我用的比较多的是.net自带的数据缓存。
6.缩略图的处理,我看有的网站是在上传图片的时候直接生成,有的是在httpmodle里处理,访问的时候生成.
直接生成好,快一点。
7.同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别?
我没涉及到这一块,不过我觉得资源文件应该就是用来处理这个问题的。
8.电子商务网站最多的就是 商品的打折方式和积分的赠送了,这里要怎么设计才好(工厂模式)?
这些都放在逻辑层好了。
9.如果同一时间并发大量订单的话,如果确保一个订单的有效提交呢?
MSMQ
10.日志方面,log4net?
目前我是自已写代码存在库里的。
11.电子商务的全文检索,这也是个头疼的问题
用lucene.net分词建索引,再直接从索引库里搜索,又快又准。
12.负载均衡方面,有什么好的文章推荐码?
不清楚了。

这样的设计要达到新蛋的效果肯定不可能的,新蛋少说几百台服务器,不同数据库之间的发布订阅链路都有几千条。有复杂的缓存,负载均衡机制。新蛋所有的通讯都是基于WCF的。另外对于这么大型的网站来说,数据库一刻都不停止,所以读写分离也很重要,因为你也不可能让数据库停下来进行备份。总归要做到新蛋这样的大型电子商务网站,靠你上面画的这点好像远远不够。


不过关于公共的header,footer,我不建议做成自定义控件,这个维护起来不方便,稍有变动就要发布dll,麻烦的。
如果你的header和footer不是很大的话,建议采用js+css的方式。然后加上压缩和cdn缓存,应该效率上能接受。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_862937.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小型电子商务网站设计原则

最近谈得最多的话题莫过于大规模,大数据量,高性能,高并发等架构话题,其实一个电子商务网站开始时一定是小规模,小数据量,用不着把架构弄得过于复杂。高度设计、过度扩展(高德纳大爷也说过,"…

正确地定制您的网站 ndash; 文件替代机制,zencart

很多用户对zen cart做了自己的修改,非常好!但同时,一些用户修改了很多重要的文件,例如: /includes/filenames.php /includes/languages/schinese.php /includes/languages/schinese/*.php 等等… 友情提示&#xff…

网站集成支付宝

(本文转载于http://stephen830.javaeye.com/blog/254827 ) 国内电子商务系统实现的基本流程如下: 客户在系统内下订单 -> 系统根据订单生成支付宝接口url -> 客户通过url使用支付宝(网上银行)付款 -> 支付宝将客户的付款…

淘宝技术发展(个人网站)之二

个人网站 2003年4月7日,马云,在杭州,成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目。这个项目要求绝对保密,老马戏称“连说梦…

如何编写外贸电子商务网站产品的描述信息

把自己的商品信息准确地传递给你的客户,是运行电子商务的重要环节,也是促成客户选购产品的关键因素。对于电子商务网站来说商品的描述是必不可少,是对图片信息的重要的补充。图片传递给客户的只是商品的形状和颜色的信息,对于性能…

利用CDN技术加速国外客户访问外贸电子商务网站的速度

很多外贸企业都遇到过这样的问题:网站做得非常好,可还是经常得到国外客户的反馈说是访问网站的速度慢,这不仅会在很大程度上影响企业的外贸交易,还会很大的影响到企业的形象。保证国外客户高速地访问您的网站,是您在外…

网站数据分析工具

对于外贸电子商务平台而言,除了网站销售的产品内容及销售额外,那些很有可能直接转化为订单的数据,包括流量、订阅数、排名和主机等,也是非常重要的,另外还有一些其他平台的相关数据及盈利情况等等,也都需要外贸电子商务…

使用 Startssl 提供的免费证书+Nginx 搭建 https 的网站

使用 Startssl 提供的免费证书Nginx 搭建 https 的网站 Posted on October 1, 2010 by gkp Startssl 是一家提供免费 SSL 证书的公司,我们可以用其搭建 https 网站,貌似可以被除去Opera 外的所有主流浏览器所信任,过程简单记录如下&#x…

提高网站转化率,将观众变为永久用户的九个关键点

本文是博文《9 Keys to Increase Website Conversion Rate and Turn Visitors into Customers》的译文,编译内容如下: 从根本上讲,本文是一篇关于吸引在线用户注意力的文章,因为如果没有注意力,就没有人看你的链接、图…

PHP网站备份程序代码分享

php中通过代码备份网站的实现代码&#xff0c;很方面大家在线备份网站&#xff0c;需要的朋友可以参考下。 详细出处参考&#xff1a;http://www.jb51.net/article/27337.htm 效果图: PHP代码 <html> <head> <meta http-equiv"Content-Type&q…

使用ThinkPHP框架快速开发网站(多图)

使用ThinkPHP框架快速搭建网站 这一周一直忙于做实验室的网站&#xff0c;基本功能算是完成了。比较有收获的是大概了解了ThinkPHP框架。写一些东西留作纪念吧。如果对于同样是Web方面新手的你有一丝丝帮助&#xff0c;那就更好了挖。 以前用PHP做过一个很蹩脚的网站&#xff0…

微信扫描二维码登录网站技术原理

微信扫描二维码登录网站 网站应用微信登录开发指南 微信扫描二维码登录网站是微信开放平台下网站应用的一种接口实现的功能。微信开放平台的网址是 https://open.weixin.qq.com 准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信…

Nginx网站服务的搭建和优化、重写跳转

1.Nginx简介 1.概况 Nginx&#xff1a; Nginx是一个高性能的HTTP和反向代理服务器是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器单台物理服务器可支持30 000&#xff5e;50 000个并发请求&#xff08;实际上20000-3…

山寨网站正确的做法

下了网站的源码&#xff0c;结果有问题&#xff0c;短时间调试无果&#xff0c;试了各种网站下载器&#xff0c;下载的网站不能看。最后&#xff0c;决定手动来。 思路&#xff1a;一个网页一个网页的扒 工具&#xff1a;火狐浏览器、迅雷、一个新建的文本、PHPStorm9、PHPStud…

网站二级域名与一级目录的选择

读者问: 很多人都说子站包围主站会很有利,想问一下关于子站的问题 子站(二级域名)相对于网站的一级目录来说,权威性是不是要大些? 搜索引擎是把子站作为独立的一个站来看待?还是也算为一级目录来看待? 如果是作为独立的一个站来看待,那主站的内容就少了,那流量会算进主站吗?…

使用Display: None来隐藏内容是合法的SEO吗?

如果你正在优化一个有上千页面的网站&#xff0c;那么你很有可能同一个CMS系统在打交道。但是&#xff0c;CMS系统经常会带来很多搜索引擎优化问题。如果CMS的开发者不熟悉搜索引擎工作原理的话&#xff0c;即使他们本来没有打算欺骗搜索引擎&#xff0c;但最终的结果还是会导致…

Web发展简史((webapp+Java原生)移动端开发 )+web网站)

Web发展简史--------->(&#xff08;webappJava原生&#xff09;移动端开发(微信小程序&#xff0c;公众号&#xff0c;头条app))web网站) Web发展简史 1&#xff1a;在那时&#xff0c;Web开发还比较简单&#xff0c;开发者经常会去操作web服务器(主要还是他自己的机器)&…

购买云服务器和搭建PHP环境,运行PHP个人网站

1&#xff1a;首先需要购买云服务器 阿里云&#xff0c;百度云&#xff0c;腾讯云&#xff0c;华为云等那一家的都一样。我以腾讯云为例子说明&#xff0c;我买的是腾讯云。 1&#xff1a;本人学生&#xff0c;直接购买腾讯云10元一月的学生服务器。购买前需要先注册腾讯云的账…

sun.com跳转到oracle.com,sun网站logo变更

今天准备下载最新版本的jdk时,发现sun网站logo已经改为oracle, 色调风格也与oracle一致。 http://java.sun.com/j2se: jdk下载页面: sun.com 跳转至oracle 怀念一下原来的sun页面:

叉包舍-虚拟网之L2TP组网用户访问内部网站故障分析处理

一、问题描述 L2tp组网用户反映&#xff0c;无法打开其内网的一个网站&#xff0c;地址为172.20.252.8&#xff0c;但可以打开其他网站&#xff0c;如&#xff1a;172.20.12.131&#xff1b; 二、组网拓扑 用户接入―交换机---城域网ERX&#xff08;LAC&#xff09; -----Eudem…