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

如何在AWS的Mesos集群外通过Java驱动访问ArangoDB API?

嘿,我来帮你搞定这个连接问题~

首先,你得明白几个关键点:Mesos的服务端点和ArangoDB驱动的配置逻辑是分开的,Mesos的认证令牌确实和ArangoDB的登录没关系,咱们一步步来解决:

1. 正确配置Java驱动的主机、端口和路径前缀

你能通过http://mymesoscluster/service/arangodb3访问ArangoDB,说明这个URL是Mesos服务代理(通常是Marathon或Mesos DNS提供的)转发到ArangoDB Coordinator节点的入口。但ArangoDB Java驱动默认会直接请求根路径的API,所以需要做两个调整:

  • 主机和端口:填Mesos集群的入口地址(也就是mymesoscluster)和对应的端口——如果访问时没写端口,默认是80;如果是HTTPS访问就是443。
  • 路径前缀:必须加上/service/arangodb3,不然驱动会直接请求http://mymesoscluster:80/_api/...,而不是代理后的路径。

修改后的代码应该是这样:

@Bean 
public ArangoDB arangoDB() { 
    ArangoDB arangoDB = new ArangoDB.Builder() 
        .host("mymesoscluster", 80) // 换成你的Mesos集群入口端口,HTTPS的话用443
        .user("root")
        .password("somepassword")
        .basePath("/service/arangodb3") // 关键:添加这个路径前缀
        // 如果是HTTPS访问,加上下面这行启用SSL
        // .useSsl(true)
        .build(); 
    return arangoDB; 
}

2. 为什么Mesos的认证令牌没用?

你提到的Mesos Authentication HTTP API是用来访问Mesos自身的管理API(比如提交任务、查看集群节点状态)的,和ArangoDB的认证体系完全独立。ArangoDB驱动的用户名密码是直接发给ArangoDB集群的,和Mesos的身份验证无关,所以你原来的user和password配置是对的,不用改。

3. 额外的验证步骤

在跑Java服务之前,建议先用curl测试一下代理是否正常工作:

curl http://mymesoscluster/service/arangodb3/_api/version

如果能返回类似{"server":"arango","version":"3.x.x","license":"community"}的结果,说明代理是通的,驱动配置应该就能正常工作。

另外要注意:Mesos的服务代理应该会自动负载均衡到ArangoDB的多个Coordinator节点,所以你不用手动配置多个主机,用这个统一的服务端点就够了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:04:15