Apache Ignite JDBC驱动详解:轻量级SQL访问方案
【免费下载链接】ignite Apache Ignite 项目地址: https://gitcode.com/gh_mirrors/ignite4/ignite
概述
Apache Ignite作为一个分布式内存计算平台,提供了完整的SQL查询能力。通过JDBC驱动,开发者可以使用标准SQL语句(如SELECT、INSERT、UPDATE、DELETE等)直接操作分布式数据。Ignite目前支持两种JDBC驱动:轻量级的JDBC Thin驱动和基于客户端节点的JDBC Client驱动。本文将重点介绍默认的JDBC Thin驱动。
JDBC Thin驱动架构
JDBC Thin驱动是Ignite提供的轻量级默认驱动,只需将ignite-core-{version}.jar添加到应用classpath即可使用。其工作流程如下:
- 驱动连接到集群中的一个节点
- 所有查询被转发到该节点执行
- 节点处理查询分发和结果聚合
- 最终结果返回给客户端应用
这种架构简化了客户端配置,同时保持了分布式查询能力。
连接字符串配置
JDBC连接字符串支持两种格式:URL查询参数格式和分号分隔格式。
基本语法
// URL查询参数格式
jdbc:ignite:thin://<hostAndPortRange0>[,<hostAndPortRange1>]...[,<hostAndPortRangeN>][/schema][?<params>]
// 分号分隔格式
jdbc:ignite:thin://<hostAndPortRange0>[,<hostAndPortRange1>]...[,<hostAndPortRangeN>][;schema=<schema_name>][;param1=value1]...[;paramN=valueN]
参数说明:
host:必需,集群节点主机地址port_from:端口范围起始,默认10800port_to:端口范围结束,默认等于port_fromschema:访问的schema名称,默认PUBLIC
连接示例
// 基本连接
Connection conn = DriverManager.getConnection("jdbc:ignite:thin://192.168.0.50");
// 带认证的连接
Connection conn = DriverManager.getConnection(
"jdbc:ignite:thin://192.168.0.50;user=myUser;password=myPass");
// 启用分布式连接
Connection conn = DriverManager.getConnection(
"jdbc:ignite:thin://192.168.0.50?distributedJoins=true");
核心配置参数
| 参数 | 描述 | 默认值 |
|---|---|---|
| user | SQL连接用户名 | ignite |
| password | SQL连接密码 | ignite |
| distributedJoins | 是否启用非共置分布式连接 | false |
| enforceJoinOrder | 是否强制保持表连接顺序 | false |
| collocated | 是否按主键或关联键分组 | false |
| autoCloseServerCursor | 是否自动关闭服务端游标 | false |
| partitionAwareness | 启用分区感知模式 | false |
| skipReducerOnUpdate | 启用服务端更新 | false |
| queryTimeout | 语句执行超时(秒) | 0(无限制) |
| connectionTimeout | 连接超时(毫秒) | 0(无限制) |
高级特性
多端点连接
通过指定多个节点地址实现自动故障转移:
Connection conn = DriverManager.getConnection(
"jdbc:ignite:thin://192.168.0.50,192.168.0.51:10900,192.168.0.52:10800..10810");
驱动会随机选择地址连接,失败时自动尝试其他地址。
分区感知(实验性)
分区感知特性使驱动能够识别数据分区分布,直接将查询发送到数据所在节点:
Connection conn = DriverManager.getConnection(
"jdbc:ignite:thin://192.168.0.50,192.168.0.51;partitionAwareness=true");
注意事项:
- 需提供所有服务节点地址
- 仅支持默认关联函数
- 新增节点需重新连接
SSL安全连接
配置SSL确保通信安全:
Connection conn = DriverManager.getConnection(
"jdbc:ignite:thin://192.168.0.50?sslMode=require" +
"&sslClientCertificateKeyStoreUrl=/path/to/client.jks" +
"&sslClientCertificateKeyStorePassword=password" +
"&sslTrustCertificateKeyStoreUrl=/path/to/trust.jks" +
"&sslTrustCertificateKeyStorePassword=password");
关键SSL参数:
sslMode:require/disablesslProtocol:TLS/SSL等- 各种KeyStore配置
服务端配置
通过ClientConnectorConfiguration调整服务端参数:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientConnectorConfiguration">
<bean class="org.apache.ignite.configuration.ClientConnectorConfiguration">
<property name="port" value="10900"/>
<property name="portRange" value="50"/>
</bean>
</property>
</bean>
重要参数包括端口范围、线程池大小、缓冲区大小等。
注意事项
- JDBC对象非线程安全,避免多线程共享
- Bash环境下连接字符串需用双引号包裹
- 分区感知为实验性功能
- 认证需服务端配合启用
通过合理配置JDBC Thin驱动,开发者可以轻松实现高性能的分布式SQL访问,同时保持与传统JDBC应用的兼容性。
【免费下载链接】ignite Apache Ignite 项目地址: https://gitcode.com/gh_mirrors/ignite4/ignite
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



