Cassandra CQL 客户端口
9042 是 Apache Cassandra 的客户端入口端口,命令行工具与各类驱动默认连接它执行 CQL。Cassandra 是分布式宽表数据库,节点之间另有内部通信端口。排查连接问题时要把网络不通与认证失败分开判断,两者的处理方向完全不同。
基本信息
| 服务 | Cassandra native transport(CQL) |
|---|---|
| 协议 | TCP,默认 9042 |
| 用途 | 应用驱动与命令行工具访问 |
| 节点间端口 | 7000 与 7001 |
| 安全等级 | 仅应用网段,必须启用认证 |
典型使用场景
- 应用通过驱动连接集群读写数据
- 运维用命令行工具执行查询与维护
- 排查连接超时与认证失败两类不同问题
- 集群扩容后确认客户端连接配置是否覆盖新节点
- 安全评估时确认默认口令已修改
连接与状态检查
连接与状态检查
cqlsh db01 9042 -u cassandra -p cassandra
cqlsh --connect-timeout=10 10.0.0.9 9042
cqlsh 10.0.0.9 9042 -e "SELECT release_version FROM system.local;"
nodetool status连接失败分层判定
| 现象 | 可能原因 | 处置方向 |
|---|---|---|
| Connection refused | 端口未监听或防火墙拒绝 | 核对监听配置与放行规则 |
| Connect timeout | 链路不通或节点过载 | 先测端口,再看队列与负载 |
| AuthenticationFailed | 口令错误或认证器配置 | 启用认证并设置强口令 |
| ReadTimeout | 副本不足或负载高 | 核对副本状态与一致性级别 |
客户端配置建议使用节点列表而不是写死单个地址:驱动会自动发现集群节点,扩容或拓扑调整时不会因为一个地址失效而导致应用整体连不上。
默认用户与同名口令未修改时,整库数据可被读取甚至删除。部署完成后第一件事就是修改口令、启用认证并限制可访问的来源网段。
运维提示:集群扩容后要确认新节点地址已加入客户端的连接列表,否则流量仍集中在老节点上,表现为部分节点负载不均。
一致性提示:读写使用的一致性级别决定了延迟与一致性的取舍,排查超时问题时先确认客户端实际使用的一致性级别,而不是直接怀疑节点故障。