你为什么不开始使用"单一和小型"Cassandra服务器,就像你通常使用MySQL一样?

Raj*_*pta 27 database cassandra nosql hector

对于刚开始的任何网站,负载最初是最小的并且最初以缓慢的速度增长.人们通常从他们基于MySQL的站点开始,使用单个服务器(***也是VPS而不是专用服务器)作为应用服务器和数据库服务器运行,并且通常在这种设置下太过分了而且只是因为他们觉得需要他们将数据库与应用服务器分开,为其提供单独的VPS服务器.这是初创公司在规划资源采购时期望的事情.

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

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

编辑:

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

Lyu*_*rov 19

TL; DR;
您甚至可以从单个节点开始,但是您放弃了c*的高可用因子.

Cassandra专为处理大量数据,太字节和某些情况下的数据量的系统而构建.一旦他们发现当前的数据库系统无法有效处理数据负载(查询变慢,管理存储变得具有挑战性等),许多用户通常会从MySQL(以及许多其他RDBMS)切换到Cassandra.


为什么4-8GB gb的ram?

4-8 GB的ram与JVM和ram的大小有关,可以进行有效的垃圾收集.建议并不是说你应该从8 GB开始,但是你不应该超过8GB

这并不意味着你不能使用Cassandra在一台非常基本的机器上启动一个节点(有些人实际上有一个运行在覆盆子pi上的cassandra ).


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

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

  • 谢谢Lyuben,我知道所有这些细节,因为我一直在与Cassandra合作一个应用程序超过一年.正如你所说的那样,许多人在变大之后转而选择Cassandra,那么初学者应该如何开始呢?从mysql开始然后迁移?!是不是可以使用较小的应用程序?或者,如果我从一开始就使用cassandra,希望1天我会变大,是不是过度工程,我是不是因为一些过于雄心勃勃的希望而从一开始就没有负担? (4认同)

Bri*_*box 15

简短的回答是你绝对可以从一个小节点开始.

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

单个节点没有高可用性,但如果您刚刚开始尝试使用Cassandra,那么这可能不是问题.您将不会对如何进行备份,如何调整事物以及显然如何进行故障转移有太多了解......但在您的情况下,您可能并不关心.

能够了解Cassandra的编码以及您是否来自传统的RDBMS,这是一个更大,更重要的障碍.

看看你是否喜欢数据模型.看看你是否喜欢无架构设计.如果你已经过了所有的事情,那么你可以担心如何扩大规模.

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


Zan*_*son 11

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

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

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

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

虽然我从未在小型服务器上运行生产系统,但我在VM上运行了一个持续可用的QA集群,具有4 GB RAM和2个核心.对于小数据量,我看到其他人只需2 GB的内存即可运行集群.

Cassandra的优点在于,当您需要更多内容时,可以非常轻松地向群集添加新节点.如果您想将群集移动到更强大的硬件,而不是仅仅添加更多,您可以轻松添加新的更大的盒子,然后删除较旧的小盒子.

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

  • 这有点令人鼓舞.谢谢!虽然我从未见过人们谈论在实际中从这些配置开始. (3认同)