【发布时间】:2011-11-13 16:58:49
【问题描述】:
我正在开发一个 web 应用程序,它需要很多用户在同一个“宇宙”中,在那里会发生很多频繁的查询:
- 在特定框区域(X1、X2、Y1 和 Y2 之间)的客户端的频繁查找
- 客户经常更新位置
- 客户的频繁聊天消息
- 客户经常更新状态
- 新老客户端频繁连接和断开
我相信我的节点可以有足够的内存供所有当前在线用户在 RAM 中。这就是我最初考虑 Redis 的原因。但是,我决定 Redis 在这里不适用,因为:
- 它有一个单点故障(一个主服务器)
- 只有主服务器可以写入,如果一个有 40 个节点,那么 39 个从服务器必须让一个主服务器写入每个条目
Cassandra 似乎解决了这些问题。
但是,Cassandra 是否也适合我的频繁查询?
【问题讨论】:
-
说一下“频繁”的含义会很有用。每秒数十次更新,还是数千次?
-
@Malcolm,每个客户端、每个节点还是整个集群?
-
对于每种类型的更新,它们在您的系统中发生的频率如何?每个客户端和节点的值取决于您的设置假设。
-
@Malcolm,这不取决于活跃用户的数量吗?
-
当然可以——但你设计的目的是什么?每个系统都会在某个负载级别出现故障 - 但您需要一些参数,否则您无法看到设计是否有效
标签: database nosql scalability cassandra key-value-store