多大的电子商务网站速度这么快? [关闭]

2024-04-01

我一直致力于基于NopCommerce的asp.net mvc3电子商务应用程序。

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

现在看看亚马逊、Flipkart 和 Jabong 等少数几个网站......他们的页面几乎在零等待时间下开始加载,并且图像和其他资源几乎立即加载。

同样在搜索方面,Nop Commerce 的速度也越来越慢,只要看看 FlipKart 和 Jabong 或亚马逊,他们的速度就非常快。不知道怎么办?他们在做什么?他们是否在数据库或其他内容中执行搜索?

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

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

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

Thanks


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

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

如果您需要高可用性、弹性扩展、最高性能,并且可能想要创建事件驱动的架构或在数据到达数据库之前对其进行预处理,那么内存数据网格也非常有帮助。这是一个很好的视频,描述了一些最大的参与者是如何做到这一点的:http://youtu.be/1AR2WWaP8CE http://youtu.be/1AR2WWaP8CE

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

Norm https://stackoverflow.com/users/1385604/norm-leitman

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多大的电子商务网站速度这么快? [关闭] 的相关文章

  • 插件架构中的反射与属性

    我正在开发一个在启动时从子目录加载插件的应用程序 目前我正在通过使用反射来迭代每个程序集的类型并查找实现 IPluginModule 接口的公共类来实现此目的 由于反射涉及性能影响 并且我预计一段时间后会有多个插件 我想知道定义在程序集级别
  • CUDA 矩阵加法时序,按行与按行比较按栏目

    我目前正在学习 CUDA 并正在做一些练习 其中之一是实现以 3 种不同方式添加矩阵的内核 每个元素 1 个线程 每行 1 个线程和每列 1 个线程 矩阵是方阵 并被实现为一维向量 我只需用以下命令对其进行索引 A N row col 直觉
  • 在 Transact SQL 中何时使用 EXCEPT 而不是 NOT EXISTS?

    我最近刚刚通过阅读同事编写的代码了解到 SQL Server 中存在新的 EXCEPT 子句 有点晚了 我知道 真的让我很惊讶 但是我对它的使用有一些疑问 建议什么时候使用它 使用它与使用 AND NOT EXISTS 的相关查询在性能方面
  • 优化Python:大数组、内存问题

    我在运行 python numypy 代码时遇到速度问题 我不知道如何让它更快 也许其他人 假设有一个表面有两个三角剖分 一个是细三角剖分 fine 有 M 个点 一个是粗剖分 有 N 个点 此外 还有每个点的粗网格数据 N 个浮点数 我正
  • C# 字典循环增强

    我有一本包含大约 100 万个条目的字典 我不断地循环字典 public void DoAllJobs foreach KeyValuePair
  • 这叫什么类型的建筑?

    对于我当前正在开发的 Web 应用程序 ASP NET MVC 我们采用以下架构 Data Access Layer 将数据持久保存到任意数据库的逻辑 Domain 数据模型 Service Layer 业务逻辑 例如订单处理 账户管理等
  • 构建可扩展 Web 应用程序的书籍? (数据库性能/调优、网络、一般性能等)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从计算机科学专业毕业并作为一名从事 Web 应用程序的软件工程师进入 现实世界 后 我对如何正确扩展 W
  • SQL 与 LINQ 性能 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 VBA 将符号/图标格式化为单元格而不使用条件格式

    我使用 VBA 代码放置条件格式以覆盖大型表格中的值 每个单元格使用 2 个公式来确定使用 3 个符号中的哪一个 我需要根据列使用不同的单元格检查每个单元格的值 因此据我了解 我必须将条件格式规则单独放置在每个单元格上 以确保每个单元格中的
  • 泛化和专业化——有什么区别

    我很难真正找到泛化和专业化之间的区别 以及何时使用其中之一 谁能启发我吗 最后还有一个使用 UML 的插图 Animal是一个概括 Dog是专业化 您的超类是一个通用类 但您的子类将是您的超类的专门继承者 当您沿着继承层次结构向下移动时 它
  • 我可以在 pandas 中执行动态行累加吗?

    如果我有以下数据框 如下导出 df pd DataFrame np random randint 0 10 size 10 1 0 0 0 1 2 2 8 3 1 4 0 5 0 6 7 7 0 8 2 9 2 有没有有效的方法cumsum
  • 使用 NSMutableDictionary 与 NSMutableArray 造成的性能损失>

    我正在考虑使用 NSMutableDictionary 代替我当前的 NSMutableArray 这主要是出于 KVC KVO 的原因 该集合将在我的绘图方法的内循环中经历严重的变化 如果我继续进行此替换 性能是否会受到重大影响 干杯 道
  • jQuery UI .buttonset() 太慢

    我的 HTML 页面上有几千个按钮 运行需要10多秒 buttonset buttonset 文件准备好 有没有更快的方法来做到这一点 或者是我以某种方式限制按钮数量的唯一解决方案 创建buttonset在第一次显示之前按需进行 我刚刚测试
  • 为什么比较匹配的字符串比比较不匹配的字符串更快? [复制]

    这个问题在这里已经有答案了 这里有两个测量值 timeit timeit toto 1234 number 100000000 1 8320042459999968 timeit timeit toto toto number 100000
  • 在 R 中替换数据帧中最低列表值的最有效方法

    我有一个数据框 df 其中包含为每个受试者记录的数字列表 向量 用于测试项目的两次重复 subj item rep vec s1 1 1 2 1 4 5 8 4 7 s1 1 2 1 1 3 4 7 5 3 s1 2 1 6 5 4 1 2
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • PrintStream是有缓冲的,但是flush不会降低性能,而BufferedOutputStream会加速性能

    我预计由于 PrintStream 是缓冲的 通过在每次 print 之后添加刷新操作 速度性能应该会显着降低 但事实并非如此 如下面的代码片段所示 此外 将 PrintStream 包裹在 BufferedOutputStream 周围可
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec
  • 在 Pandas 中创建许多新列的最 Pythonic 方法

    我有一个大数据框df 约 100 列和约 700 万行 我需要创建约 50 个新变量 列 它们是当前变量的简单转换 一种方法是与许多人一起 apply声明 我只是使用transform 作为简单转换的占位符 例如max或平方 df new
  • 更改二维数组元素的值会更改整个列

    当我打印我的arrvalue 我得到了 2D 数组的正确值 但是当我退出 while 循环时 我的值都是错误的 我不确定我做错了什么 num runs n 4 x np linspace 1 1 n y np linspace 1 1 n

随机推荐