发布静态数据与通过 HTTP Get 请求获取数据的 Meteor 性能比较
Meteor performance comparison of publishing static data vs. getting data via HTTP Get request
我正在构建一个接收一堆只读静态数据的应用程序。用户不更改数据,也不向服务器发送任何数据。该应用程序只是获取数据并以各种视图将其呈现给用户。
例如零件清单,其中包含零件编号和价格。此数据当前存储在 mongoDB 中。
我没有几个选项可以将数据发送给客户端。我可以只使用 meteor 的发布系统,让客户端订阅它需要的数据。
或者我可以将客户端需要的所有数据映射到一个 JSON 文件中,将 JSON 文件保存到 Amazon S3,然后让客户端发出简单的 GET 请求来获取数据。
如果我们想让这个应用扩展到很多很多用户,使用 meteor publication 不是最好的选择吗?或者这两种方法在性能方面是否相似?使用流星发布系统是最简单的,但我担心如果很多客户请求数据,沿着这条路走下去会导致性能问题。如果发布和获取请求之间的性能大致相同,我会坚持发布,因为它是最简单的。
在这种情况下,Meteor 将提供更好的性能。如果您的数据主要是服务器到客户端驱动的,那么客户端不必担心轮询服务器,服务器也不必担心处理请求。
另外,Meteor 需要很少的资源来向客户端发送数据,因为连接是持久的。以 Meteor 为基础的 code fights 这样的应用程序不断有成千上万的连接,它的性能运行良好。
附带说明一下,如果您准备好在单独的服务器 (AWS S3) 中将静态数据作为 JSON 文件提供,那么这意味着您不希望数据有那么大,这样它就可以在单个文件中处理并完全加载到客户端的内存中。
在这种情况下,您甚至可能需要重新考虑是否需要执行任何单独的请求(无论是 HTTP 还是 Meteor Pub/Sub)。
例如,只需将数据嵌入您的应用程序,或通过 SSR / Fast Render 包提供。
然后,如果您真的关心您的可扩展性,您甚至可能会重新考虑使用 Meteor 的必要性,因为您似乎不需要任何客户端-服务器交互(没有真正的需要 Pub/Sub,没有反应……)。在您的原型准备就绪后,您可以将其重新设计为一个单独的静态 SPA,这样您甚至不需要通过 Node / Meteor 为它提供服务。
我正在构建一个接收一堆只读静态数据的应用程序。用户不更改数据,也不向服务器发送任何数据。该应用程序只是获取数据并以各种视图将其呈现给用户。
例如零件清单,其中包含零件编号和价格。此数据当前存储在 mongoDB 中。
我没有几个选项可以将数据发送给客户端。我可以只使用 meteor 的发布系统,让客户端订阅它需要的数据。
或者我可以将客户端需要的所有数据映射到一个 JSON 文件中,将 JSON 文件保存到 Amazon S3,然后让客户端发出简单的 GET 请求来获取数据。
如果我们想让这个应用扩展到很多很多用户,使用 meteor publication 不是最好的选择吗?或者这两种方法在性能方面是否相似?使用流星发布系统是最简单的,但我担心如果很多客户请求数据,沿着这条路走下去会导致性能问题。如果发布和获取请求之间的性能大致相同,我会坚持发布,因为它是最简单的。
在这种情况下,Meteor 将提供更好的性能。如果您的数据主要是服务器到客户端驱动的,那么客户端不必担心轮询服务器,服务器也不必担心处理请求。
另外,Meteor 需要很少的资源来向客户端发送数据,因为连接是持久的。以 Meteor 为基础的 code fights 这样的应用程序不断有成千上万的连接,它的性能运行良好。
附带说明一下,如果您准备好在单独的服务器 (AWS S3) 中将静态数据作为 JSON 文件提供,那么这意味着您不希望数据有那么大,这样它就可以在单个文件中处理并完全加载到客户端的内存中。
在这种情况下,您甚至可能需要重新考虑是否需要执行任何单独的请求(无论是 HTTP 还是 Meteor Pub/Sub)。
例如,只需将数据嵌入您的应用程序,或通过 SSR / Fast Render 包提供。
然后,如果您真的关心您的可扩展性,您甚至可能会重新考虑使用 Meteor 的必要性,因为您似乎不需要任何客户端-服务器交互(没有真正的需要 Pub/Sub,没有反应……)。在您的原型准备就绪后,您可以将其重新设计为一个单独的静态 SPA,这样您甚至不需要通过 Node / Meteor 为它提供服务。