【问题标题】:Connection error rpc with Golang and DGraph与 Golang 和 DGraph 的连接错误 rpc
【发布时间】:2020-12-19 16:39:33
【问题描述】:

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

rpc 错误:code = Unavailable desc = connection close exit status 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 并进行突变?

【问题讨论】:

    标签: go grpc rpc dgraph-dgo


    【解决方案1】:

    8000 端口用于 dgraph 附带的 ratel-ui。要使用 dgraph go 客户端进行突变,您需要连接到暴露的 grpc-alpha 端口,这通常位于 9080

    【讨论】:

      【解决方案2】:

      欢迎来到 Stack Overflow!

      为了让您的代码在本地使用 docker“独立”版本的 DGraph,我必须更改 2 件事:

      • 使用端口9080。容器暴露了 3 个端口:800080809080。使用80808000 我得到了你提到的同样的错误。
      • 使用v2 导入。不确定您正在运行哪个版本的 DGraph 服务器,因此您可能不需要这样做。但如果您有新服务器,则需要这些导入:
      import (
          dgo "github.com/dgraph-io/dgo/v2"
          api "github.com/dgraph-io/dgo/v2/protos/api"
      )
      

      【讨论】:

      • go get新的导入路径“github.com/dgraph-io/dgo/v2”了吗?
      • go get github.com/dgraph-io/dgo/v2 非常适合我。如果你已经初始化了 go 模块,你也可以尝试 go mod tidy 来获取依赖项。
      • 但无论如何:这现在已经成为一个依赖问题,不再是一个 dgraph/dgo 问题。
      • 项目根目录下是否有 go.mod 文件?如果没有,请转到该文件夹​​并致电go mod init 并为模块命名。该名称是基于唯一性的最佳域,例如 github.com/tehsphinx/somemodule
      • 现在,我尝试再次运行 main.go,程序抛出:txn:<10005 keys: preds:>
      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 2022-01-16
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 2019-10-24
      • 2015-04-07
      相关资源
      最近更新 更多