首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GraphSON v2而不是v3?

如何使用GraphSON v2而不是v3?
EN

Stack Overflow用户
提问于 2020-03-16 12:18:58
回答 5查看 1.6K关注 0票数 3

我试图在python中运行一段代码,它使用来自Microsoft的Cosmos DB。我目前正在使用gremlinpython 3.2.6和最新版本的Cosmos ( microsoft azure的默认版本),但两者之间似乎存在一些兼容性问题。

当我运行我的代码,我得到以下错误;

代码语言:javascript
复制
GremlinServerError: 498: 

ActivityId : 5c05bb15-3aa1-41b8-9c10-ab3015152eab
ExceptionType : GraphMalformedException
ExceptionMessage :
    Gremlin Malformed Request: GraphSON v3 IO is not supported.
    GremlinRequestId : 5c05bb15-3aa1-41b8-9c10-ab3015152eab
    Context : global
    GraphInterOpStatusCode : MalformedRequest
    HResult : 0x80131500

我读到过我应该尝试使用GraphSON v2而不是V3,但是不知道怎么做,有人能帮上忙吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-03-16 13:22:07

欢迎来到这个社区。您只需要确保使用GraphSON v2的模式,因为它是Azure中支持的版本。检查正在使用的json,并确保遵循支持的模式。在此链接中有一些示例。

票数 1
EN

Stack Overflow用户

发布于 2021-06-08 19:01:00

使用C#,如果您将连接配置放在Startup.cs中,您可以这样配置它:

代码语言:javascript
复制
services.AddSingleton<GremlinClient>(
            (serviceProvider) =>
            {
                var gremlinServer = new GremlinServer(
                    hostname: "<account>.gremlin.cosmosdb.azure.com",
                    port: <port>,
                    enableSsl: true,
                    username: "/dbs/<db>/colls/<collection>",
                    password: ""
                    );
                var connectionPoolSettings = new ConnectionPoolSettings
                {
                    MaxInProcessPerConnection = 32,
                    PoolSize = 4,
                    ReconnectionAttempts = 3,
                    ReconnectionBaseDelay = TimeSpan.FromSeconds(1),
                };
                var mimeType = "application/vnd.gremlin-v2.0+json";
                return new GremlinClient
                (
                    gremlinServer: gremlinServer,
                    graphSONReader: new GraphSON2Reader(),
                    graphSONWriter: new GraphSON2Writer(),
                    mimeType: mimeType,
                    connectionPoolSettings: connectionPoolSettings
                );
            }
        );

否则,您应该使用以下阅读器、作者和mimeType创建gremlin客户机:

代码语言:javascript
复制
var mimeType = "application/vnd.gremlin-v2.0+json";
var client = new GremlinClient
(
      gremlinServer: <your server>,
      graphSONReader: new GraphSON2Reader(),
      graphSONWriter: new GraphSON2Writer(),
      mimeType: mimeType,
      connectionPoolSettings: <your connection pool>
 );
票数 1
EN

Stack Overflow用户

发布于 2020-08-11 16:04:05

默认情况下,gremlin_python使用GraphSONSerializersV3d0,因此在创建客户机时必须显式传递GraphSONSerializersV2d0

代码语言:javascript
复制
from gremlin_python.driver import client, serializer

client.Client(
    message_serializer=serializer.GraphSONSerializersV2d0(),
    password="...",
    traversal_source='g',
    url='wss://...:443/',
    username="/dbs/.../colls/...",
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60705905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档