我可以在 docker 容器中 运行 多少个 cassandra 节点?

How many cassandra nodes can I run in docker container?

我在 docker 容器中有 cassandra 运行ning。该容器的最大 RAM 为 12GB 和 8 核 CPU。我对 cassandra 术语还很陌生。我想知道我是否可以在一个容器中 运行 多个 cassandra 节点。如果是,那我可以运行多少?我在类似问题的答案中读到了它,但这对我来说并不清楚。我的目标是使用 cassandra 实现每秒 100 万的写入吞吐量。我应该为此构建多少个节点、集群,是否可以在一台机器上构建所有这些?

运行 同一个 docker 容器中的多个 Cassandra 进程是不可取的。

  • 从网络的角度来看,它们都具有相同的 IP,即 将使配置变得困难。
  • 从性能的角度来看,你不会达到更高的 吞吐量,因为您的容器需要共享 CPU、RAM 和 IO。您可以通过设置 MAX_HEAP_SIZE (和 HEAP_NEWSIZE) 在你的 cassandra 进程中分配你的 12GB,但是 他们都将争夺相同的 CPU 和可用的 IO。您最好 运行 在您的容器中只安装一个 Cassandra 服务。
  • 从功能的角度来看,您没有实现高可用性, 线性可扩展性,这是许多公司选择 Cassandra 的重要原因。

总体而言,您应该 运行 您的 Cassandra 集群跨多个物理服务器,您可以 dockerize Cassandra,但每个容器 运行 一个 Cassandra 服务(设置 MAX_HEAP_SIZE 和 HEAP_NEWSIZE 来控制内存使用),每个服务器一个容器。每秒一百万次写入不小。您将需要大量服务器来实现该吞吐量。根据您的复制因子、一致性级别、插入的大小和服务器的大小,您可能正在查看 10 或 100 台服务器...