Web服务器最佳实践

问题描述:

我需要关于设计决策的建议。 我正在创建一个电子商务应用程序,并有很多项目(> 10000)在我的应用程序中显示。现在我有两个选项 1)从服务器获取所有项目信息并保存在本地数据库中,并且每次同步信息(比如15分钟) 2)每次从Web服务器获取信息(通过休息api)。Web服务器最佳实践

这两种方法都有优点和缺点。使用本地数据库我可以得到快速的结果和较少的服务器带宽,但将不得不处理同步 第二种方法,我将有很多的服务器请求和释放和加载服务器上。

我也想知道其他应用程序如亚马逊和flipkart如何处理这个。每次都保存在本地数据库或请求服务器中。

您应该寻找的是本地和远程的混合设计。

在数据类型方面有两种主要类型:

  • 斑点“二进制大对象”例如:图像,视频...
  • 和小数据(的通常JSON/XML表示项目)。

亚马逊和其他网络应用程序提供新的数据每次应用程序加载时间,同时保持数据的本地副本柜面应用去下线,有时甚至使用这些数据在未来的工作量,同时等待为后端。

另一方面,这些应用程序为大数据维护高速缓存级别,以便它们不必一次加载它。

但对于这项工作的关键是要有一个包含许多功能,以提高其速度,包括一个非常快的后端:

  • 云的前端,使用户能够与周围最近的服务器进行通信。
  • memcached或任何其他缓存技术,将保持在服务器中的RAM项目的信息,而不必查询数据库来获取它们。

通常会发生什么是后端的确保其数据始终醚查询每特定时间的数据库,或通过推缓存每次插入在RAM /缓存加载/删除/更新发生到数据库。

Here is how Twitter is doing it

最后一点您的应用程序不应该需要更长的时间比一个网页,它不是对本地应用比web应用程序需要较长的时间接受更多的交互,以允许用户与他们进行互动。

只加载你想要显示的东西,但是智能缓存。

例如;产品的图像不会经常变化,但可用于非常受欢迎的项目的项目数量可以每秒更改一次。根据具体情况决定刷新和何时刷新哪些信息。

绝对不希望每次有人启动应用程序时从服务器上拉下所有东西。这不会导致较低的带宽。它会融化您的服务器,吞并他们的数据计划,并用他们永远不会看到的产品填充他们的手机存储。