我在 docker 容器中运行 cassandra。该容器具有 12GB 的最大 RAM 和 8 核 CPU。我对 cassandra 术语相当陌生。我想知道我是否可以在一个容器中运行多个 cassandra 节点。如果是,那么我可以运行多少个?我在类似问题的答案中阅读了它,但这对我来说并不清楚。我的目标是使用 cassandra 实现每秒 100 万次的写入吞吐量。我应该为此构建多少个节点、集群,是否可以在一台机器上构建所有这些?
最佳答案
在同一个 docker 容器中运行多个 Cassandra 进程是不可取的。
- 从网络的角度来看,它们都将拥有相同的 IP,即 将使其难以配置。
- 从性能的角度来看,您不会取得更高的成绩 吞吐量,因为您的容器需要共享 CPU、RAM 和 IO。您可以通过设置 MAX_HEAP_SIZE (和 HEAP_NEWSIZE) 在你的 cassandra 进程中分割你的 12GB,但是 它们都将竞争相同的 CPU 和 IO 可用。您最好在容器中只运行一个 Cassandra 服务。
- 从功能的角度来看,您无法实现高可用性, 线性可扩展性,这是许多公司选择 Cassandra 的重要原因。
总体而言,您应该在多个物理服务器上运行 Cassandra 集群,您可以对 Cassandra 进行 docker 化,但只需为每个容器运行一个 Cassandra 服务(设置 MAX_HEAP_SIZE 和 HEAP_NEWSIZE 以控制内存使用),并且每个服务器运行一个容器。每秒一百万次写入并不小。您将需要大量服务器来实现该吞吐量。根据您的复制因子、一致性级别、插入的大小和服务器的大小,您可能会查看 10 或 100 台服务器...
关于cassandra - 我可以在 docker 容器中运行多少个 cassandra 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49552103/