我们正在构建一个应用程序,物联网设备(温度传感器)会将数据推送到 Azure 物联网中心。
并且会有一个 webjob 将读取这些数据并将其推送到数据库中(在将其与原始数据一起汇总之后)。 我们还需要 Web 应用程序的一个功能,用户可以在其中订阅任何房间/区域,我们需要将当前温度推送到他的屏幕(每当它发生变化时)。只有当用户在该屏幕上时才需要这样做。
我们计划为此任务使用 redis 发布/订阅。 Webjob 可以将此数据发布到 redis pub/sub(连同 db)。 webApplication 将订阅 Redis PubSub(仅适用于使用 signalR 订阅 web 服务器的用户)。
对这个设计有什么想法吗?在这种情况下,Redis PubSub 是一个不错的选择吗?
最佳答案
通常我更喜欢使用消息队列,例如RabbitMQ做这样的工作。
Redis 确实支持发布/订阅,并使它变得简单和快速。如果您只需要发布/订阅,这是一个不错的选择。
另一方面,RabbitMq 有更多的优势,而且对我来说它很容易调试。
此外,您需要更多地考虑高可用性/持久性。对于redis,你可能需要自己实现,但是对于消息队列,他们可能已经有解决方案了。
关于azure - 在 Azure 上使用 Redis PubSub 作为通知引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46722829/