【发布时间】:2017-08-08 19:06:41
【问题描述】:
我正在使用 WPF 和 .Net 为桌面设计一个类似 whatsapp 的信使应用程序。现在,当用户创建组时,我希望该组的其他成员收到他们被添加到组的通知。我的前端是用 C#.Net 构建的,它连接到一个 RESTful Web 服务(Ruby on Rails)。我正在为数据库使用 Postgres。我还有一个 Redis 层来缓存我的 Rails 模型。
我正在考虑以下选项。
1) 使用 Postgres 内置的 NOTIFY/LISTEN 机制,客户端可以直接订阅。我在这里预见到两个问题 i) Postgres 可能无法处理直接订阅的 10000 个客户端。 ii) 如果客户端断开连接,则无法保证送达
2) 使用客户端可以订阅的 Redis 的 Pub/Sub 机制。我仍然担心这里无法保证交货。
3) 使用像 RabbitMQ 这样的消息队列。该队列的生产者将是 postgres,它将通过触发器推送消息。消费者当然是 .Net 客户端。
到目前为止,我倾向于使用第三个选项。
有人对如何设计有任何建议吗?
【问题讨论】:
-
以任何方式实现它,只要它起作用,你选择什么都没关系。
-
阿什什最后做了什么?你能分享你的经验吗?
标签: postgresql redis rabbitmq real-time real-time-updates