Получение тайм-аута сервера при попытке подключения к базе данных Cosmos с помощью gremlin в Javascript - PullRequest
0 голосов
/ 19 марта 2019

Я продолжаю получать тайм-аут сервера из базы данных космоса, когда пытаюсь подключиться, используя gremlin 3.4.0 в Javascript (также я пробовал в ядре .net, но все еще то же самое).

Мне удалось соединиться сстарая версия gremlin 2.6.0, но теперь, когда я обновляю gremlin до 3.4.0 (также я прочитал их документацию, как подключиться к БД в версии 3.4.0), я всегда получаю тайм-аут сервера.

Вот какя пытаюсь подключиться (также у меня есть ssl-аутентификатор):

const dbName = "dbName";
const collection = "collectionName";
const key = "key";
const cosmosEndpoint = "ws://endpointName.gremlin.cosmosdb.azure.com:433/gremlin";

const authenticator = new Gremlin.driver.auth.PlainTextSaslAuthenticator(`/dbs/${dbName}/colls/${collectionName}`
  , key);

const client = new Gremlin.driver.Client(
  cosmosEnpoint,
  {
    authenticator,
    traversalsource: "g",
    rejectUnauthorized: true,
    ssl: true,
    session: false
  }
);

Эта ошибка, которую я получаю в Javascript:

Ошибка: подключить ETIMEDOUT ...: 433 вTCPConnectWrap.afterConnect [as oncomplete] (net.js: 1083: 14) Произошло событие «ошибка» при: at Connection._handleError (C: \ RDS \ RDS.Graph.API - Copy (2) \ node_modules \ gremlin \ lib \driver \ connection.js: 216: 10) в WebSocket._ws.on (C: \ RDS \ RDS.Graph.API - Copy (2) \ node_modules \ gremlin \ lib \ driver \ connection.js: 129: 40) вWebSocket.emit (events.js: 197: 13) на WebSocket.finalize (C: \ RDS \ RDS.Graph.API - Copy (2) \ node_modules \ ws \ lib \ WebSocket.js: 182: 41)в ClientRequest._req.on (C: \ RDS \ RDS.Graph.API - Copy (2) \ node_modules \ ws \ lib \ WebSocket.js: 647: 10) в ClientRequest.emit (events.js: 197: 13)в Socket.socketErrorListener (_http_client.js: 397: 9) в Socket.emit (events.js: 197: 13) в emitErrorNT (internal / streams / destroy.js: 82: 8) в emitErrorAndCloseNT (internal / streams / destroy.js: 50: 3)

Эта ошибка, которую я получаю в .NET:

Попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через некоторое время,или не удалось установить соединение, так как подключенный хост не смог ответить

Я что-то не так делаю или это может быть из-за дБ?

Спасибо, ребята, передний.

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете попробовать следовать этому примеру js-коду , который хорошо работает для меня.

Игнорировать package.json в проекте, просто выполните npm install gremlin, чтобы установить последнюю версиюпакет gremlin (3.4.0)

enter image description here

Затем запустите app.js:

const Gremlin = require('gremlin');
const config = require("./config");

const authenticator = new Gremlin.driver.auth.PlainTextSaslAuthenticator(`/dbs/${config.database}/colls/${config.collection}`, config.primaryKey)

const client = new Gremlin.driver.Client(
    config.endpoint, 
    { 
        authenticator,
        traversalsource: "g",
        rejectUnauthorized: true,
        ssl: true,
        session: false,
        mimeType : "application/vnd.gremlin-v2.0+json"
    }
);

Журнал выполнения:

enter image description here

...