You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IntelliJ的Java项目中连接AWS Neptune数据库并进行交互

连接AWS Neptune 前置配置信息
  • 基础实例参数
    • Neptune集群端点:可在AWS控制台Neptune实例详情页获取,格式为cluster-xxx.xxx.neptune.amazonaws.com
    • 连接端口:默认8182,无特殊修改无需调整
    • SSL配置:Neptune默认强制要求SSL连接,Java 8u101及以上版本内置亚马逊根证书,无需额外导入证书
  • 网络与权限配置
    • 运行Java项目的环境需与Neptune实例在同一VPC,或通过SSH隧道、VPC对等连接等方式打通网络
    • Neptune关联的安全组需放通项目所在IP的8182端口入站规则
    • 若实例启用了IAM身份验证,需提前配置AWS访问凭证,可通过~/.aws/credentials文件、环境变量、EC2实例角色三种方式配置
所需依赖Jar包

如果使用Maven管理依赖,直接在pom.xml中添加如下配置即可自动导入所有所需Jar包:

<dependencies>
    <!-- Gremlin Java核心驱动 -->
    <dependency>
        <groupId>org.apache.tinkerpop</groupId>
        <artifactId>gremlin-driver</artifactId>
        <version>3.6.2</version>
    </dependency>
    <!-- 仅开启IAM身份验证时需要添加以下两个依赖 -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-neptune</artifactId>
        <version>1.12.500</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>amazon-neptune-sigv4-signer</artifactId>
        <version>2.4.0</version>
    </dependency>
</dependencies>
  • 非Maven项目可手动下载对应版本的Jar包导入:gremlin-driver、gremlin-core、netty-all、jackson-databind,开启IAM认证时额外导入aws-java-sdk-neptune、amazon-neptune-sigv4-signer、aws-java-sdk-core
IntelliJ Java项目连接操作步骤
  • 步骤1:打开IntelliJ,新建/打开已有Java项目,项目类型选择Maven(推荐)
  • 步骤2:将上述依赖配置添加到项目的pom.xml文件中,点击IDEA右上角的Maven刷新按钮,等待依赖下载完成
  • 步骤3:编写Neptune连接初始化代码,示例如下(未开启IAM认证场景):
import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.driver.Client;
import org.apache.tinkerpop.gremlin.driver.ResultSet;

public class NeptuneTest {
    public static void main(String[] args) {
        // 替换为你的Neptune集群端点
        String neptuneEndpoint = "your-cluster-endpoint.neptune.amazonaws.com";
        int port = 8182;

        // 构建集群连接配置
        Cluster cluster = Cluster.build()
                .addContactPoint(neptuneEndpoint)
                .port(port)
                .enableSsl(true)
                // 测试环境可关闭证书主机名校验,避免内网域名校验失败问题
                .sslSkipCertValidation(true)
                .maxConnectionPoolSize(10)
                .create();

        // 初始化客户端
        Client client = cluster.connect();

        try {
            // 测试查询:统计顶点数量
            ResultSet resultSet = client.submit("g.V().count()");
            Long count = resultSet.one().getLong();
            System.out.println("Neptune中顶点总数:" + count);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭资源
            client.close();
            cluster.close();
        }
    }
}
  • 步骤4:如果你的Neptune开启了IAM认证,连接配置需要额外添加签名器,代码调整如下:
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer;
import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.driver.Client;

public class NeptuneIamTest {
    public static void main(String[] args) throws Exception {
        String neptuneEndpoint = "your-cluster-endpoint.neptune.amazonaws.com";
        int port = 8182;
        // 替换为你的Neptune实例所在区域
        String region = "us-east-1";

        // 构建签名器
        NeptuneNettyHttpSigV4Signer signer = new NeptuneNettyHttpSigV4Signer(region, new DefaultAWSCredentialsProviderChain());

        Cluster cluster = Cluster.build()
                .addContactPoint(neptuneEndpoint)
                .port(port)
                .enableSsl(true)
                .sslSkipCertValidation(true)
                // 添加IAM签名器
                .channelizer(signer)
                .create();

        Client client = cluster.connect();
        // 后续查询逻辑与无IAM场景一致
    }
}
  • 步骤5:右键运行测试类,控制台输出顶点数量即代表连接成功,后续可根据业务需求编写对应的Gremlin查询语句获取数据
注意事项
  • 生产环境建议关闭sslSkipCertValidation配置,提前导入亚马逊根证书到JVM信任库,避免安全风险
  • 连接池参数可根据业务并发量调整maxConnectionPoolSize、minConnectionPoolSize等参数
  • 长服务场景下无需每次查询都创建和关闭Cluster连接,可将Cluster和Client作为单例对象全局复用

内容的提问来源于stack exchange,提问作者Harish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:54:01