我正在研究Dgraph和Go集成。我正在尝试访问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))
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行代码时,我收到错误rpc error: code = Unavailable desc = 连接已关闭。由于我是新手,Go我DGraph Database的知识非常有限。
任何人都可以帮助需要进行哪些具体更改才能修复此错误。
端口 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。
通常情况下,当你学习东西时,你永远不会考虑使用offset。所以你可能启动了一个普通的集群。默认端口是9080。
| 归档时间: |
|
| 查看次数: |
27475 次 |
| 最近记录: |