大型电子商务网站有多快? [英] How large eCommerce sites are so fast?

查看:20
本文介绍了大型电子商务网站有多快?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在研究基于 NopCommerce 的 asp.net mvc3 电子商务应用程序.

最近我们一直致力于性能方面的工作,以提高网站的性能.该网站拥有超过 200000 种产品和 1200 个类别和大号.的品牌.这种努力导致了 20 到 200 倍的性能增量,但当与亚马逊、flipkart、jabong、letsbuy、ebay、shopping.indiatimes.com 等电子商务巨头进行对比时,它仍然较慢.

现在只看几个网站,比如亚马逊、Flipkart 和Jabong...他们的页面开始加载时几乎为零等待时间,图像和其他资源几乎是即时加载的.

还有搜索,Nop Commerce 染色慢,看看 FlipKart &Jabong 或亚马逊,他们非常快.不知道怎么办?他们在做什么?他们是在 db 中还是在其他地方进行搜索?

我的问题是他们做了什么才能拥有如此出色的表现?我知道他们有负载平衡服务器,内存缓存就像实现缓存的内存实现可能是整个站点.

但是创建如此大的可扩展网站的最佳实践是什么?他们是如何做到的?他们中的任何人是否使用任何开源电子商务平台,如 nop commerce 或 magento 作为他们的基础?还是他们都喜欢定制?

想了解如何利用要实施的最佳实践来扩展像他们这样的 Web 应用程序.(请注意,这是一个一般问题,而不是与非商业相关的问题,它是我们迄今为止使用过的最好的电子商务应用程序之一.)

谢谢

解决方案

数据库层通常总是一个瓶颈,而且往往是重要的瓶颈.这意味着您必须有一个缓存层来最小化数据库访问并将其从关键路径中删除.当键值存储足够时,Memcached 可能是一个不错的选择.

然而,许多现实世界的场景都涉及复杂的领域模型.在这些情况下,最好使用与域对象一起工作并可以处理嵌入对象关系的内存中数据网格.

如果您需要高可用性、弹性扩展、最大性能,并且可能希望在数据到达数据库之前创建事件驱动架构或预处理数据,则内存中数据网格也非常有用.这是一个很好的视频,描述了一些最大的玩家是如何做到的:http://youtu.be/1AR2WWaP8CE

另一个主要优化是减少下载内容的时间,因此您还需要使用内容交付网络.从这 2 个优化开始,您可能会发现性能不再是问题.

规范

I have been working on asp.net mvc3 e-commerce application based on NopCommerce.

Recently we have been working on performance side to improve the performance of the site. The site have more than 200000 products and 1200 categories and large no. of brands. This efforts has resulted into 20 to 200 times the performance increment, but still when bench marked against the e-commerce majors like, amazon, flipkart, jabong, letsbuy, ebay, shopping.indiatimes.com,etc it is still slower.

Now looking at just few sites, like Amazon, Flipkart & Jabong... Their page starts loading with almost zero waiting time, and images and other resources load almost instantaneously.

Also for search, Nop Commerce is dyeing slow, just look at the FlipKart & Jabong or Amazon, they very fast. No clue how? What do they do? Do they perform a search in db or something else?

My question is what do they do to have this kind of superb performance? I know they have load balancing servers with mem cached like memory implementation implemented to cache may be the entire site.

But what are the best practices for creating such large scalable web site? And how do they do it? Are any of them use any opensource e-commerce platform like nop commerce or magento as their base? Or do they all prefer custom made?

Would like to learn how to scale a web application like them with its best practices to implement. (Note that this is a general question and not a nop-commerce related one, it is one of the best e-commerce application we used till date.)

Thanks

解决方案

The database tier is usually always a bottleneck, and often the significant one. That means it’s imperative that you have a caching layer to minimize database access and remove it from the critical path. Memcached may be a good option when a key-value store is sufficient.

However, many real-world scenarios involve complex domain models. In these cases, it’s much better to use an in-memory data grid that works with domain objects and which can handle embedded object relationships.

An in-memory data grid is also very helpful if you need high-availability, elastic scaling, maximum performance, and perhaps want to create an event-driven architecture or pre-process data before it hits the database. Here’s a good video describing how some of the biggest players do it: http://youtu.be/1AR2WWaP8CE

Another major optimization would be in reducing the time to download content, so you’ll also want to use a content delivery network. Start with these 2 optimizations and you may find that performance is no longer an issue.

Norm

这篇关于大型电子商务网站有多快?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆