与 Golang 和 DGraph 的连接错误 rpc

我正在尝试在 DGraph 数据库中进行突变,但是当我运行代码时,它会抛出下一个错误:


rpc 错误:代码 = 不可用 desc = 连接关闭退出状态 1


我在端口 8000 中使用 dGraph 和 docker,我的 golang 代码在这里:


package main


import (

   "fmt"

   "context"

   "encoding/json"

   "log"

   dgo "github.com/dgraph-io/dgo"

   api "github.com/dgraph-io/dgo/protos/api"

   grpc "google.golang.org/grpc"

)


type Person struct {

   Name string `json:"name,omitempty"`

   Lastname string `json:"lastname,omitempty"`

}


func main() {

conn, err := grpc.Dial("localhost:8000", grpc.WithInsecure())

if err != nil {

  log.Fatal(err)

}

defer conn.Close()

dgraphClient := dgo.NewDgraphClient(api.NewDgraphClient(conn))

p := Person {

    Name: "Giovanni",

    Lastname: "Mosquera Diazgranados",

}

txn := dgraphClient.NewTxn()

ctx := context.Background()

defer txn.Discard(ctx)

pb, err := json.Marshal(p)

if err != nil {

    log.Fatal(err)

}

mu := &api.Mutation{

    SetJson: pb,

}

res, err := txn.Mutate(ctx, mu)

if err != nil {

    fmt.Println("Aqui toy")

    log.Fatal(err)

} else {

    fmt.Println(res)

}

}

如何解决此错误以连接我的 DGraph 并进行突变?


慕码人8056858
浏览 132回答 2
2回答

慕的地10843

欢迎来到堆栈溢出!为了让你的代码在本地使用 docker“独立”版本的 DGraph 我不得不改变两件事:使用端口9080。容器暴露了 3 个端口:8000, 8080, 9080. 使用8080or8000我得到你提到的同样的错误。使用v2进口。不确定您正在运行哪个版本的 DGraph 服务器,因此您可能不需要这样做。但是如果你有一个新的服务器,你需要这些导入:import (    dgo "github.com/dgraph-io/dgo/v2"    api "github.com/dgraph-io/dgo/v2/protos/api")

拉丁的传说

端口8000用于 dgraph 附带的 ratel-ui。要使用 dgraph go 客户端进行突变,您需要连接到暴露的 grpc-alpha 端口,这通常位于9080.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go