节点和客户端cassandra之间的数据传输

时间:2015-01-24 15:45:18

标签: cassandra data-transfer

我是Cassandra的新手并且正在学习它。 所以问题是如何在Cassandra中的节点之间进行通信

  1. 基本通信 - 故障检测和其他
  2. 从节点到节点和客户端的数据传输
  3. 任何其他类型的沟通
  4. 第一个答案是Gossip协议http://www.datastax.com/resources/faq
    但我对Cassandra用于将数据从一个节点传输到另一个节点或客户端的协议和方法感到好奇。

2 个答案:

答案 0 :(得分:1)

节点之间的通信是通过Gossip进行的,正如您所说。

故障检测再次通过Gossip,每个节点检查来自其他节点的Gossip消息。如果它没有收到' n(在cassandra.yaml文件中可配置)的八卦消息数,则认为该节点已经死亡。寻找标签phi-convict阈值。

我不确定cassandra用于数据传输的内容,通常可能是通过TCP构建的简单层。 cassandra的一个主要特点是你不必担心Cassandra如何处理复制,你只需要考虑策略

答案 1 :(得分:1)

Cassandra节点间通信与节点和客户端之间的通信是分开的。

  1. 使用Gossip - 以便节点知道故障(客户端不是 参与)
  2. 这需要拆分:节点通信/发送数据storage_port(请参阅cassandra.yaml - 默认端口7000),客户端连接到端口9042(或9160用于旧的thrift客户端)并使用此处指定的专有二进制协议进行通信: https://github.com/apache/cassandra/blob/trunk/doc/native_protocol_v3.spec
  3. 您可能关心的其他通信是JMX,哪个节点工具使用
  4. 此处有更多详情:http://www.datastax.com/documentation/cassandra/2.1/cassandra/security/secureFireWall_r.html