如果您使用 Cassandra 分布式键值存储,您将有多个 Cassandra 节点,因此会有几台计算机。数据不只是在那里,当然,您还有一个或多个与 Cassandra 节点通信的客户端程序。客户端完成的计算密集型工作也可能分布在多台计算机上。客户端和 Cassandra 节点是否应该是独立的计算机?可以将同一台计算机用作 Cassandra 节点和 Cassandra 客户端吗?从正确执行的意义上说,我希望它会起作用,但是会有不可接受的性能问题吗?
我看到的 Cassandra 文档中提到 Cassandra 节点和客户端应该是独立的计算机,但我没有看到明确的建议。
我为什么要问?我为什么要这样做?我想到的应用程序不需要客户端在本地存储任何数据,他们使用 Cassandra 存储所有持久数据。他们的工作是计算密集型的,因此瓶颈可能是客户端 CPU 处理而不是 Cassandra 处理。也不将它们用作 Cassandra 节点似乎很浪费。
另外,如果每个计算(客户端)节点也是一个 Cassandra 节点,我可以使用每个节点的 Cassandra 令牌(用于分发 Cassandra 的数据)来分发客户端计算。