Как мне подключиться к Нептуну с помощью Java - PullRequest
0 голосов
/ 28 июня 2018

У меня есть следующий код на основе документов ...

@Controller
@RequestMapping("neptune")
public class NeptuneEndpoint {
    @GetMapping("")
    @ResponseBody
    public String test(){
        Cluster.Builder builder = Cluster.build();
        builder.addContactPoint("...endpoint...");
        builder.port(8182);

        Cluster cluster = builder.create();

        GraphTraversalSource g = EmptyGraph.instance()
                                           .traversal()
                                           .withRemote(
                                               DriverRemoteConnection.using(cluster)
                                           );

        GraphTraversal t = g.V().limit(2).valueMap();

        t.forEachRemaining(
                e ->  System.out.println(e)
        );

        cluster.close();
        return "Neptune Up";
    }
}

Но когда я пытаюсь бежать, я получаю ...

java.util.concurrent.TimeoutException: истекло время ожидания при ожидании доступного хоста - проверьте конфигурацию клиента и подключение к серверу, если это сообщение сохраняется

Кроме того, как добавить секретный ключ из учетной записи AWS IAM?

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

У меня просто была та же проблема, и основной причиной был конфликт версий зависимостей с Netty, который, к сожалению, является очень распространенной зависимостью. Gremlin 3.3.2 использует io.netty/netty-all версию 4.0.56.Final. Вы можете обнаружить, что ваш проект зависит от другого jar-файла Netty, такого как io.netty/netty или io.netty/netty-handler, оба из которых могут вызвать проблемы, поэтому вам нужно будет исключить их из других зависимостей в POM или использовать управляемые зависимости для установки версии Netty на уровне проекта. .

0 голосов
/ 28 июля 2018

Нептун не позволяет вам подключаться к экземпляру БД с вашего локального компьютера. Вы можете подключиться к Neptune только через EC2 внутри того же VPC, что и Neptune ( aws документация ).

Попробуйте создать исполняемый jar этого кода и запустить его внутри ec2, код должен работать нормально. Если вы пытаетесь что-то отладить в своей локальной системе, используйте туннелирование экземпляров PuTTY для подключения к ec2, который затем будет перенаправлен в кластер neptune.

0 голосов
/ 01 июля 2018

Вы создали экземпляр с включенной аутентификацией IAM?

Если да, вам придется подписать ваш запрос с помощью SigV4. Дополнительная информация (и примеры) о том, как подключиться с помощью SigV4, доступна по адресу https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-connecting-gremlin-java.html

Примеры , приведенные в документации выше, также содержат информацию о том, как использовать ваши учетные данные IAM для подключения к кластеру Neptune.

...