9160 是什么
9160 是 Apache Cassandra 1.x 与 2.x 时代的客户端接口端口:早期客户端通过 Thrift RPC 访问集群。Cassandra 从 1.x 起主推 CQL 原生协议(默认 9042),2.x 后期把 Thrift 标记为弃用,3.x 起默认不再启动它。所以扫描到 9160 基本可以判定环境里还有老客户端或未收敛的配置;结合 JMX 的 7199 与节点间通信的 7000、7001,可以快速还原集群的版本与拓扑。
基本信息
| 服务 | Cassandra Thrift(legacy) |
|---|---|
| 协议 | TCP |
| 用途 | 旧客户端访问 Cassandra |
| 配套端口 | 9042(CQL)、7000/7001(节点间)、7199(JMX) |
| 现状 | 3.x 起默认不再启动 |
| 安全等级 | 仅过渡期应用网段 |
典型使用场景
- 版本升级评估:9160 是判断是否仍在使用老驱动的直接证据
- 技术债盘点:把 Thrift 依赖列入收敛计划,避免升级被卡住
- 集群连通排障:确认客户端库与集群版本是否匹配
- 安全审计:Thrift 接口默认缺少细粒度授权,需确认来源限制
- 监控接入:梳理集群各端口与采集项的对应关系
Cassandra 端口对照
| 端口 | 用途 | 说明 |
|---|---|---|
| 9042 | CQL 原生协议 | 现代客户端与驱动默认使用 |
| 9160 | Thrift(旧) | 1.x/2.x 客户端接口,已弃用 |
| 7000/7001 | 节点间通信 | 集群内部复制与控制 |
| 7199 | JMX 管理 | nodetool 与监控采集 |
确认端口与服务状态
确认端口与服务状态
ss -lntp | grep 9160 # 是否还在监听
nodetool info | grep -i thrift # 版本与 Thrift 状态
nodetool status # 集群节点与状态
cqlsh 127.0.0.1 9042 # 现代接口连通性对照
# 关闭 Thrift: cassandra.yaml 中 start_rpc: falseThrift 判废后并不等于可以立刻关闭:部分监控插件与老运维脚本仍然依赖 9160,收敛前先做依赖扫描,避免升级当天才发现工具链断供。
节点间与客户端端口的暴露面要分开治理:7000 与 7001 只应在集群内部可达,客户端口按应用网段收敛,JMX 端口更不应随意开放。
版本升级通常要求先停 Thrift 再改驱动:顺序反了会出现新旧客户端并存期间的连接抖动,排查时很难区分是配置还是代码问题。
关闭 Thrift 前建议先观察一段时间的连接来源:用 ss 或抓包统计对端地址,能确认到底还有哪些业务与工具在依赖这个老接口,避免凭印象决策。
Cassandra 的版本升级往往涉及 SSTable 格式与协议变化:排障前先确认集群内各节点版本是否一致,混版本环境下的现象最难解释。