rpc错误:代码=不可用desc = Go代码中的连接已关闭

问题描述

正在进行DgraphGo集成。我正在尝试访问Dgraph中的Go查询,为此我正在使用github.com/dgraph-io/dgo库。

这是代码

package main

import (
    "bytes"
    "context"
    "fmt"
    "io/IoUtil"
    "log"

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

    "google.golang.org/grpc"
)

func main() {

     query := `{
         people(func: has(name)) {
            name
           follows{
             name
           }
         }
     }`

     conn,err := grpc.Dial("x.x.x.x:8000",grpc.WithInsecure())
     if err != nil {
          log.Fatal(err)
     }
     ctx := context.Background()
     dgraphClient := dgo.NewDgraphClient(api.NewDgraphClient(conn))

     txn := dgraphClient.NewTxn()
     txn.Query(ctx,query)

     request := &api.Request{
          Query: query,}

     response,err := txn.Do(ctx,request)
     if err != nil {
          log.Fatal(err)
     }
     fmt.Println(string(response.Json))
}

我遇到错误 rpc错误:尝试运行代码时,代码=不可用desc =连接已关闭。 由于我是GoDGraph Database的新手,所以我的知识非常有限。

任何人都可以帮忙,需要进行哪些确切的更改以解决错误

解决方法

和你遇到同样的情况,工作一小时后,发现原因是我用了一个代理,比如export https_proxy=http://192.168.3.92:7890 http_proxy=http://192.168.3.92:7890 all_proxy=socks5://192.168.3.92:7890,执行unset https_proxy http_proxy all_proxy的时候,成功了!

,

端口8000上的服务仅是UI。如果要使用gRPC,则必须在端口9080中调用它。绝不要8080、8000、6080等。检查此文档https://dgraph.io/docs/deploy/ports-usage/#types-of-ports

在此示例https://github.com/dgraph-io/dgo/blob/a38d5eaacbf8667cc2d6e7b40bd0978cede4000f/examples_test.go#L35

它正在使用端口9180。由于测试用群集的偏移量为100。这意味着Alpha中的所有端口都增加了100个整数。因此,Alpha中的所有端口都必须考虑偏移量。其余的API是8180,gRPC是9180。

在通常情况下,您在学习东西时就不会考虑使用偏移量。因此,您可能启动了一个普通集群。默认端口为9080。

相关问答

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