DGraph Go客户端引发错误“所有SubConns都在TransientFailure中,最新的连接错误:连接已关闭”

问题描述

我正在尝试使用 Windows 计算机上的 Go 客户端连接 DGraph

我已经通过使用以下docker命令由DGraph Client启动。

docker run --rm -it -p 8080:8080 -p 9080:9080 -p 8000:8000 -v ~/dgraph:/dgraph dgraph/standalone:v20.03.0

我可以通过HTTP:// localhost:8000访问dgraph UI。我能够使用dgraph UI更改模式,设置数据并向后查询

我在Go中连接DGraph具有以下实现。

import (
    "context"
    "fmt"
    "log"

    "github.com/dgraph-io/dgo/v2"
    "github.com/dgraph-io/dgo/v2/protos/api"
    "google.golang.org/grpc"
)

// UserGroup type
type UserGroup struct {
    UID         string `json:"uid,omitempty"`
    Name        string `json:"name,omitempty"`
    Description string `json:"description,omitempty"`
    Level       int    `json:"level,omitempty"`
    Enabled     bool   `json:"enabled,omitempty"`
}

// User type
type User struct {
    UID       string      `json:"uid,omitempty"`
    UserID    string      `json:"userId,omitempty"`
    Email     string      `json:"email,omitempty"`
    Enabled   bool        `json:"married,omitempty"`
    UserRoles []UserGroup `json:"user.userGroups,omitempty"`
    DType     []string    `json:"dgraph.type,omitempty"`
}

// CancelFunc type
type CancelFunc func()

// Client of dGraph
func Client() (*dgo.Dgraph,CancelFunc) {
    conn,err := grpc.Dial("localhost:9080",grpc.WithInsecure())
    if err != nil {
        log.Fatal("While trying to dial gRPC")
    }

    dc := api.NewDgraphClient(conn)
    dg := dgo.NewDgraphClient(dc)

    return dg,func() {
        if err := conn.Close(); err != nil {
            log.Printf("Error while closing connection:%v",err)
        }
    }
}

// GetData func
func GetData() {
    dg,cancel := Client()
    defer cancel()

    ctx := context.Background()
    q := `{
        q(func: eq(dgraph.type,"User")) {
          dgraph.type
          uid
          userId
          email
        }
      }`

    resp,err := dg.NewTxn().Query(ctx,q)
    if err != nil {
        fmt.Println("Query error")
        log.Fatal(err)
    }

    fmt.Println(resp)
}

但是我遇到了以下错误

错误代码=不可用desc =所有SubConns都在TransientFailure中,最新的连接错误:连接已关闭

不确定在这里我到底缺少什么。任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...