【问题标题】:Should I poll on front end, or back end sending through websocket?我应该在前端轮询,还是通过 websocket 发送后端?
【发布时间】:2021-12-07 14:26:15
【问题描述】:

我有一个 mongodb 数据库,我在其中存储可以有到期日期的产品。我想让用户知道产品是否过期。

我对 websocket 连接没有太多经验,所以我不确定它们有多“昂贵”,并且想知道哪个更值得。

如果我从前端轮询(每 t 次有 n 个用户),那就是 n 个 http 请求和每 t 的数据库查询(假设均匀分布)。

另一方面,如果我从后端、单个实例进行轮询并发布到订阅者,则每 t 有 1 个数据库查询,但 n 个 websocket 连接同时加载了大量数据,然后休息 t(所以n 不是通过 t 均匀分布的)。

哪个更理想?

【问题讨论】:

    标签: http websocket load-balancing publish-subscribe polling


    【解决方案1】:

    WebSockets 最适合这种情况。您正在通过轮询它+使用客户端的网络向数据库服务器添加不必要的负载(不是什么大问题,但也不理想)

    设置 WebSockets 可能会很耗时,并且您可能会在扩展它时遇到困难。您可以使用PieSocket 之类的服务。

    这是一个发布在 PieSocket 上的示例,介绍如何实时跟踪 MySQL 数据库更改。为 Mongo 编写相同的代码应该很容易:Track MySQL Database Changes With WebSockets

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2018-02-03
      • 2018-09-17
      • 2019-02-20
      • 2020-03-13
      • 2019-02-01
      • 2020-03-15
      相关资源
      最近更新 更多