Golang和DGraph的连接错误rpc

问题描述

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

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

我将dGraph与8000端口中的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连接并进行突变?

解决方法

欢迎堆栈溢出!

要使您的代码在DGraph的docker“独立”版本中本地工作,我必须更改2件事:

  • 使用端口py.init_notebook_mode(connected = True)。容器公开了3个端口:908080008080。使用90808080会收到与您提到的相同的错误。
  • 使用8000导入。不知道您正在运行哪个版本的DGraph服务器,因此您可能不需要这样做。但是如果您有一台新服务器,则需要这些导入:
v2
,

端口8000用于dgraph随附的ratel-ui。要使用dgraph go客户端进行变异,您需要连接到公开的grpc-alpha端口,该端口通常位于9080上。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...