【发布时间】:2011-02-25 13:37:38
【问题描述】:
我正在启动一个项目,我认为该项目特别适合 MongoDB,因为它提供的速度和可扩展性。
我目前感兴趣的模块是实时聊天。如果我要在传统的 RDBMS 中执行此操作,我会将其拆分为:
- 频道(一个频道有很多用户)
- 用户(一个用户有一个频道但有很多消息)
- 消息(消息有用户)
为了这个用例的目的,我想假设一次通常有 5 个通道处于活动状态,每个通道每秒最多处理 5 条消息。
需要快速的特定查询:
- 获取新消息(可能基于书签、时间戳或递增计数器?)
- 向频道发布消息
- 验证用户是否可以在频道中发帖
考虑到 MongoDB 的文档限制为 4mb,您将如何设计架构?你的会是什么样子?有什么我应该注意的问题吗?
【问题讨论】:
标签: mongodb rabbitmq activemq schema-design nosql