example/

directory
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2025 License: MIT

README

example

hephfx/micro实战

gen code

执行如下命令实现go代码生成

sh bin/go-generate.sh

start running

  1. 先运行命令go run cmd/rpc/main.go启动服务端。
  2. 接着执行go run clients/go/main.go运行客户端。

grpc gateway

  1. 需要在proto文件添加如下核心配置
import "google/api/annotations.proto";

// Greeter service 定义开放调用的服务
service Greeter {
    rpc SayHello (HelloReq) returns (HelloReply){
        option (google.api.http) = {
            get: "/v1/say/{id}"
        };
    };

    rpc Info (InfoReq) returns (InfoReply){
        option (google.api.http) = {
            get: "/v1/info/{name}"
        };
    };
}
  1. 执行go run cmd/gateway/main.go即可(启动之前,需要先启动rpc服务端)。

grpc grpcurl tools

  1. 安装grpcurl工具
brew install grpcurl

如果你本地安装了golang,那可以直接运行如下命令,安装grpcurl工具

go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
  1. 验证rs-rpc service启动的效果
# 50051 是qa-svc grpc微服务的端口
grpcurl -plaintext 127.0.0.1:50051 list

执行上面的命令,输出结果如下:

Hello.Greeter
grpc.reflection.v1.ServerReflection
grpc.reflection.v1alpha.ServerReflection
  1. 查看proto文件定义的所有方法
grpcurl -plaintext 127.0.0.1:50051 describe Hello.Greeter

输出结果如下:

Hello.Greeter is a service:
service Greeter {
  rpc Info ( .Hello.InfoReq ) returns ( .Hello.InfoReply ) {
    option (.google.api.http) = { get: "/v1/info/{name}" };
  }
  rpc SayHello ( .Hello.HelloReq ) returns ( .Hello.HelloReply ) {
    option (.google.api.http) = { get: "/v1/say/{id}" };
  }
}
  1. 查看请求参数定义
grpcurl -plaintext 127.0.0.1:50051 describe Hello.HelloReq

输出结果如下:

Hello.HelloReq is a message:
message HelloReq {
  int64 id = 1;
}
  1. 请求grpc方法
grpcurl -d '{"id":1}' -plaintext 127.0.0.1:50051 Hello.Greeter.SayHello

返回结果如下:

{
  "name": "heph-fx,id: 1",
  "message": "hello world"
}

Directories

Path Synopsis
clients
go command
go/pb
Package pb is a reverse proxy.
Package pb is a reverse proxy.
cmd
gateway command
rpc command
internal
pb
Package pb is a reverse proxy.
Package pb is a reverse proxy.
tools
validator_gen command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL