【问题标题】:Cassandra port usage - how are the ports used?Cassandra 端口使用情况 - 端口是如何使用的?
【发布时间】:2021-04-20 20:31:47
【问题描述】:

在使用 Cassandra 进行试验时,我发现 Cassandra 侦听以下端口:

  • TCP *:8080
  • TCP *:8888
  • TCP *:57311
  • TCP *:57312
  • TCP 127.0.0.1:7000
  • TCP 127.0.0.1:9160
  • UDP 127.0.0.1:700

Cassandra 如何使用列出的每个端口?

【问题讨论】:

  • adamse:感谢您的提示!可能是这样,但是为了 Stackoverflow 上未来的 Cassandra 用户(人口不断增长!)我认为将答案也存储在这里很好:-)

标签: nosql cassandra


【解决方案1】:

@Schildmeijer 基本上是对的,但是在使用TLS Encrypted Internode communication 时仍然使用端口 7001

所以我的完整列表将针对当前版本的 Cassandra:

  • 7199 - JMX(在 Cassandra 0.8.xx 之前是 8080)
  • 7000 - 节点间通信(如果启用 TLS,则不使用)
  • 7001 - TLS 节点间通信(在启用 TLS 时使用)
  • 9160 - Thrift 客户端 API
  • 9042 - CQL 本机传输端口

【讨论】:

【解决方案2】:

对于 Apache Cassandra 2.0,您需要考虑以下 TCP 端口: (见EC2 security group配置和Apache Cassandra FAQ

卡桑德拉

  • 7199 JMX 监控端口
  • 1024 - 65355 JMX 需要的随机端口。从 Java 7u4 开始,可以使用 com.sun.management.jmxremote.rmi.port 属性指定特定端口。
  • 7000节点间集群
  • 7001 SSL 节点间集群
  • 9042 CQL 原生传输端口
  • 9160 节俭

DataStax OpsCenter

  • 61620 opscenterd 守护进程
  • 61621代理
  • 8888 网站

架构

在 EC2 上使用 Cassandra + OpsCenter 的可能架构如下所示:

【讨论】:

    【解决方案3】:

    8080 - JMX(远程)

    8888 - 远程调试器(在 0.6.0 中移除)

    7000 - Cassandra 内部使用
    (7001 - 已过时,在 0.6.0 中删除。用于会员交流,也就是八卦)

    9160 - Thrift 客户端 API

    Cassandra 常见问题解答What ports does Cassandra use?

    【讨论】:

      【解决方案4】:

      JMX 现在使用端口 7199 而不是端口 8080(从 Cassandra 0.8.xx 开始)。

      这可以在您的 cassandra-env.sh 文件中进行配置,但默认值为 7199。

      【讨论】:

        【解决方案5】:

        端口 57311 和 57312 是随机分配的端口,用于 RMI 通信。这些端口在 Cassandra 每次启动时都会更改,但需要在防火墙中打开,以及 8080/7199(取决于版本),以允许远程 JMX 访问。似乎没有特别好的记录,但过去曾让我绊倒的事情。

        【讨论】:

        • 为了后代,这个烦恼应该得到解决,从 Cassandra 2.0.8 开始according to this ticket。默认的cassandra-env.sh 现在将com.sun.management.jmxremote.rmi.port 属性设置为与主JMX 端口相同的值,以便不使用随机端口。
        【解决方案6】:

        除了上述答案之外,作为配置防火墙的一部分,如果您使用 SSH,请使用端口 22。

        【讨论】:

          【解决方案7】:

          我使用以下步骤解决了问题:

          1. 停止 cassandara 服务

            sudo su -
            systemctl stop datastax-agent
            systemctl stop opscenterd
            systemctl stop app-dse
            
          2. 备份并将端口从 9042 更改为 9035

            cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
            Vi /opt/dse/resources/cassandra/conf/cassandra.yaml
            native_transport_port: 9035
            
          3. 启动 Cassandra 服务

            systemctl start datastax-agent
            systemctl start opscenterd
            systemctl start app-dse
            
          4. 创建 cqlshrc 文件。

            vi  /root/.cassandra/cqlshrc
            
            [connection]
            hostname = 198.168.1.100
            port = 9035
            

          谢谢, 马赫什

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-11-10
            • 1970-01-01
            • 2011-06-23
            • 2011-03-04
            • 2011-03-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多