Apache Ignite JDBC驱动详解:轻量级SQL访问方案

Apache Ignite JDBC驱动详解:轻量级SQL访问方案

【免费下载链接】ignite Apache Ignite 【免费下载链接】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即可使用。其工作流程如下:

  1. 驱动连接到集群中的一个节点
  2. 所有查询被转发到该节点执行
  3. 节点处理查询分发和结果聚合
  4. 最终结果返回给客户端应用

这种架构简化了客户端配置,同时保持了分布式查询能力。

连接字符串配置

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:端口范围起始,默认10800
  • port_to:端口范围结束,默认等于port_from
  • schema:访问的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");

核心配置参数

参数描述默认值
userSQL连接用户名ignite
passwordSQL连接密码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");

注意事项:

  1. 需提供所有服务节点地址
  2. 仅支持默认关联函数
  3. 新增节点需重新连接

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/disable
  • sslProtocol: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>

重要参数包括端口范围、线程池大小、缓冲区大小等。

注意事项

  1. JDBC对象非线程安全,避免多线程共享
  2. Bash环境下连接字符串需用双引号包裹
  3. 分区感知为实验性功能
  4. 认证需服务端配合启用

通过合理配置JDBC Thin驱动,开发者可以轻松实现高性能的分布式SQL访问,同时保持与传统JDBC应用的兼容性。

【免费下载链接】ignite Apache Ignite 【免费下载链接】ignite 项目地址: https://gitcode.com/gh_mirrors/ignite4/ignite

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值