将 Cassandra 集群部署到一组 Linode VPS 实例是不是有任何“陷阱”?

Posted

技术标签:

【中文标题】将 Cassandra 集群部署到一组 Linode VPS 实例是不是有任何“陷阱”?【英文标题】:Are there any "gotchas" in deploying a Cassandra cluster to a set of Linode VPS instances?将 Cassandra 集群部署到一组 Linode VPS 实例是否有任何“陷阱”? 【发布时间】:2011-01-18 11:39:22 【问题描述】:

我正在学习 Apache Cassandra 数据库 [原文如此]。

在将 Cassandra 部署到像 Linode 或 Slicehost 产品这样的专用硬件上时,是否有人有任何好的/坏的经验?

我认为 Cassandra 将是一种轻松扩展 Web 服务以满足读/写/请求负载的好方法……只需将另一个运行 Cassandra 节点的 Linode 添加到现有集群即可。是的,这意味着在同一个 VPS 上运行公共 Web 服务和 Cassandra 节点(许多人可以例外)。

类似 Linode 的 Cassandra 部署的优点:

专用 VLAN; Cassandra 节点可以私下通信 用于配置新 Linode 的 API(并可能使用安装 Cassandra 及其依赖项等的“StackScript”对其进行配置) 价格合适

缺点:

每个主机都是一个VPS,当然不是专用的 一旦您决定要 4GB RAM(参见 SoftLayer 专用),RAM/成本比就不是很好了 我想只有 1 个磁盘,其中一个更喜欢 2 个磁盘(1 个用于提交日志,另一个磁盘用于数据文件本身)。可能没有实际意义,因为无论如何这是共享硬件。

编辑:发现这有点帮助:http://wiki.apache.org/cassandra/CassandraHardware

我看到 1GB 是最低要求,但这是建议吗?例如,我可以使用 Linode 720 进行部署(比如 500 MB 可用于 Cassandra)吗?见http://www.linode.com/

【问题讨论】:

【参考方案1】:

您需要多少内存实际上取决于您的工作量:如果您以写入为主,您可以少用一些内存,否则您将需要内存用于读取缓存。

在我的雇主 rackspace cloud:http://www.rackspacecloud.com/cloud_hosting_products/servers/pricing,您确实可以为您获得更多的内存。 (我们的机器也有 RAID 磁盘,因此人们通常会看到比 EC2 更好的 i/o 性能。不知道关于 linode。)

由于对于大多数 VPS,您为下一个大小的实例支付大约 2 倍的费用,即与添加第二个小型实例大致相同,我建议使用更少、更大的实例而不是更多、更小的实例,因为在少量网络中开销不可忽略。

我确实知道有人在 256MB 的虚拟机上使用 Cassandra,但如果你使用这么小的虚拟机,你肯定是少数。

【讨论】:

感谢您的信息。这就是我所希望的。我的应用程序的写入量很大,而且大多数时候,其他关心经常写入数据的用户将进行长轮询或等效,并将被推送数据。因此,读取次数将最少。如果我走 quorum-writes 路线,我想我应该总是为我的 Cassandra 集群提供奇数个实例,是吗? quorum 是复制因子的函数,而不是总节点数。因此,您的最小节点数 (=RF) 将是奇数,但不会超过这个数。 哦,好的。一个例子。我的集群中可以有 1000 个节点,但复制因子为 5。法定人数为 5/2+1=3。因此,只要成功联系/写入/等 3 个节点,那么所有节点都被认为是成功的?

以上是关于将 Cassandra 集群部署到一组 Linode VPS 实例是不是有任何“陷阱”?的主要内容,如果未能解决你的问题,请参考以下文章

ansible快速部署cassandra3集群

使用数人云轻松部署 Cassandra 集群

管理多个 Cassandra 会话

开源Nosql数据库Cassandra3.0实战-集群部署与插件使用

Cassandra 组件

从 java 代码连接 cassandra 集群时出错