Apache Ignite 3 Beta示例在ClientMessageDecoder.readMagic()校验MAGIC_BYTES失败
问题分析与解决方案
问题根源
你遇到的是端口混淆问题:Apache Ignite 3 Beta中,CLI工具连接的是节点的REST管理端口(默认10300),而JDBC Thin Client需要连接的是专用Thin Client端口(默认10800)。当示例代码错误连接到REST端口时,收到的是REST接口的响应头(而非Thin Client协议要求的'INGI'魔法字节),从而触发校验失败。
你调试看到的0x01, 0x00, 0x03, 0x00正是Ignite 3 REST接口的协议头标识,后续的defaultNode是节点名称,完全符合REST接口的响应格式。
解决方案
1. 修正示例代码的连接URL
确保JDBC URL指向Thin Client端口(默认10800),而非REST端口(10300):
// 正确的JDBC Thin Client URL String url = "jdbc:ignite:thin://localhost:10800"; Connection conn = DriverManager.getConnection(url);
2. 确认节点Thin Client端口配置
检查节点配置文件config/default-config.yaml,确保thinClient端口已启用(默认是开启的):
network: port: 10300 # REST/CLI端口 thinClient: port: 10800 # Thin Client专用端口
3. 验证端口连通性
在Windows命令行/PowerShell中执行以下命令,确认10800端口正常开放:
Test-NetConnection localhost -Port 10800
若显示TcpTestSucceeded: True则端口正常。
4. 重启节点(若修改过配置)
如果调整了配置文件,重启Ignite节点使配置生效。
内容的提问来源于stack exchange,提问作者Winter
相关产品推荐
相关产品推荐

