我们的网站有大约 50,000 名用户,每日活跃流量相当不错。我们正在为我们的用户群设计一个新的通知功能。
我们的要求如下:
- 用户属于不同的组。
- 一个用户可以是多个组的一部分。
- 当用户在组中上传图像时,该特定组的所有成员都应该收到“新图像上传”的通知,无论是在线还是离线。
我们考虑为每个用户创建每个组和队列的rabbitmq交换。但是在设计正确的方式前感到困惑!
比如说,即使用户在通知生成后几天登录站点,他也应该收到通知。我们最终将消息存储在数据库中,这对离线用户来说根本不是一件好事。
有人可以建议适当的设计模式并解释这个用例吗?我们正在使用 celery + rabbitmq + tornado。龙卷风应该直接与芹菜消费者对话吗?用户离线时消息存储在哪里?