go-kratos 学习笔记 服务发现服务间通信grpc调用
package main
import (
"context"
"fmt"
"github.com/go-kratos/kratos/v2/transport/grpc"
"google.golang.org/grpc"
)
// 假设已经有一个kratos服务运行在localhost:9000
func main() {
conn, err := grpc.Dial("localhost:9000", grpc.WithInsecure())
if err != nil {
panic(err)
}
defer conn.Close()
// 使用grpc客户端调用服务
client := grpc.NewClient(conn)
ctx := context.Background()
// 假设有一个Greeter服务,有一个SayHello方法
// 需要先定义对应的proto文件和生成的stub代码
// 这里只是示例,没有具体的proto文件和生成代码
res, err := client.Call(ctx, &Request{ /* 构造请求参数 */ })
if err != nil {
panic(err)
}
fmt.Println(res) // 输出响应结果
}
这个代码示例展示了如何使用go-kratos框架中的grpc客户端去调用一个gRPC服务。首先,它创建了一个与服务端的连接,然后使用该连接初始化了一个grpc客户端。最后,它使用该客户端发起了一个RPC调用。注意,这里的Request
和Response
需要替换为具体的gRPC请求和响应结构体,这些结构体是从对应的proto文件中生成的。
评论已关闭