32

对于任何刚起步的网站,最初的负载都是最小的,并且最初的增长速度很慢。人们通常从他们的基于 MySQL 的站点开始,使用单个服务器(*** 那也是 VPS 而不是专用服务器)作为应用程序服务器和数据库服务器运行,并且通常在此设置中走得太远,只有在他们认为需要时他们将数据库与应用服务器分开,给它一个单独的 VPS 服务器。这就是初创公司在规划资源采购时所期望的。

但到目前为止,我所看到的情况与 Cassandra 完全不同。人们通常建议从至少一个 3 节点集群开始,(在专用服务器上)具有大量 RAM。他们建议从 4GB 或 8GB RAM 开始。与 MySQL 相比,Cassandra 是否需要更多的硬件资源才能让网站提供相似的性能、提供相似的负载/流量和相同数量的数据。我了解由于复制而对 Cassandra 的更高存储要求,但其他硬件资源呢?

我们不能像 MySQL 一样从基于 Cassandra 的应用程序开始。从 1 或 2 VPS 开始,并在需要时添加更多?

编辑:

我不想将苹果与橙子进行比较。我只是想知道当我开始使用基于单节点 VPS 的 cassandra 安装与基于单节点 VPS 的 MySQL 安装相比时,我可能会处于多么危险的境地。这两种情况的区别。cassandra 服务器是否比 MySQL 服务器更容易不可用?如果我将 tomcat 也与 Cassandra 一起使用,那有什么不好的,因为人们在单个服务器上使用 LAMP 堆栈。

4

4 回答 4

19

TL;博士;
您甚至可以从单个节点开始,但您失去了 c* 的高可用性因素。

Cassandra 专为处理海量数据、TB 级甚至 PB级数据的系统而构建。一旦发现他们当前的数据库系统无法有效处理数据负载(查询变慢,管理存储变得具有挑战性等),许多用户通常会从 MySQL(和许多其他 RDBMS)切换到 Cassandra。


为什么要 4-8GB GB 的内存?

4-8 GB 的 ram 与 JVM 和高效垃圾收集的 ram 大小有关。建议不是说你应该从 8 GB 开始,而是说你不应该超过 8 GB

这并不意味着您不能使用 Cassandra 在非常基本的机器上启动单个节点(有些人实际上在 raspberry pi上运行 cassandra )。


为什么人们推荐 3 个节点?

可用性是 cassandra 的主要卖点之一。如果您有 2 个RF=2 的节点,那么如果单个节点出现故障,您将无法执行写入。如果您有 3 个节点,您仍然可以执行读取和写入。

于 2013-08-27T11:48:10.370 回答
15

简短的回答是您绝对可以从单个小节点开始。

我认为其他人建议您不要这样做是因为您会根据系统配置的方式学习不同的东西。

单个节点不具有高可用性,但如果您刚刚开始尝试 Cassandra,那么这可能不是问题。您不会对如何进行备份、如何调整以及显然如何进行故障转移有太多的了解……但在您的情况下,您可能不在乎。

能够了解如何使用 Cassandra 进行编码,如果您来自传统的 RDBMS,这是一个更大、更重要的障碍。

看看你是否喜欢这个数据模型。看看你是否喜欢无模式设计。如果你克服了所有这些,你就可以担心如何扩大规模。

WRT 你的另一个问题:一个单节点 Cassandra 集群,即使在一台小型机器上运行,即使它与其他服务共享该机器不应该比在类似配置中运行 MySQL 更“危险”。

于 2013-09-18T16:29:33.943 回答
11

人们通常建议从至少一个 3 节点集群开始,(在专用服务器上)具有大量 RAM。他们建议从 4GB 或 8GB RAM 开始。

Cassandra 硬件建议通常适用于拥有 100 GB 数据的人。如果您没有大量数据,您可以避免拥有更少的数据。您可以将 JVM 调低到仅使用 cassandra-env.sh 中的 512 MB 或 1 GB 堆。

我们不能像 MySQL 一样从基于 Cassandra 的应用程序开始。从 1 或 2 VPS 开始并在需要时添加更多?

是的你可以。但是,如果您想充分利用 Cassandra,您肯定希望从至少两台服务器开始,如果您需要能够使用 QUORUM 来保持一致性,则需要三台,并且仍然支持一个节点宕机。

虽然我从未在这么小的服务器上运行过生产系统,但我已经在具有 4 GB RAM 和 2 个内核的 VM 上运行了一个持续可用的 QA 集群。对于小数据量,我看到其他人在低至 2 GB 的 RAM 上运行集群。

Cassandra 的好处在于,当您确实需要更多节点时,很容易将新节点添加到集群中。如果您想将集群迁移到更强大的硬件,而不仅仅是添加更多,您可以轻松添加新的更大的盒子,然后移除旧的小盒子。

更新:
这是最近一篇关于让 Cassandra 以 64 MB 堆运行的博客文章:

于 2013-08-28T15:28:28.667 回答
0

回答你问题的最后一部分

“我们不能从像 MySQL 这样的基于 Cassandra 的应用程序开始吗?从 1 或 2 个 VPS 开始,并在需要时添加更多?”

您绝对可以从在 Cassandra 上编写应用程序开始。我在 cassandra 之上构建了一个银行应用程序,它运行良好。我有一个 6 节点集群并使用 Cassandra 1.1。Cassandra 具有可调的数据一致性,从非常强的一致性(事务支持)到最终的一致性。

您绝对可以从一个 VPS 开始,然后根据需要进行扩展。Cassandra 是可扩展的,添加新节点会导致性能线性提高。

有关更多信息,您可以观看此视频:

http://www.youtube.com/watch?v=5qEoEAfAer8

有用的网址 :

http://www.datastax.com/docs/1.1/initialize/cluster_init

http://www.datastax.com/2012/01/how-to-set-up-and-monitor-a-multi-node-cassandra-cluster-on-linux

于 2013-08-27T14:48:28.977 回答