install
proto 环境安装
make install
make gen
syntax = "proto3"; // 指定 proto 版本
package proto; // 指定包名
option go_package = ".;proto"; // 指定路径
// 定义 Hello 服务
service Hello {
// 定义 SayHello 方法
rpc SayHello(HelloRequest) returns (HelloReply) {}
}
// HelloRequest 请求结构
message HelloRequest {
string name = 1; // 名字
}
// HelloReply 响应结构
message HelloReply {
string message = 1; // 消息
}
package main
import (
"context"
"fmt"
proto "gmsec/rpc"
"github.com/gin-gonic/gin"
"github.com/gmsec/goplugins/plugin"
"github.com/gmsec/micro"
"github.com/xxjwxc/ginrpc"
)
func main() {
// grpc 相关 初始化服务
service := micro.NewService(
micro.WithName("lp.srv.eg1"),
)
h := new(hello)
proto.RegisterHelloServer(service.Server(), h) // 服务注册
// ----------- end
// gin 相关
base := ginrpc.New(ginrpc.WithCtx(Ctx), ginrpc.WithDebug(true), ginrpc.WithGroup("xxjwxc"))
router := gin.Default() // gen 对象
base.Register(router, h) // genrpc 对象注册
// ------ end
plg, _ := plugin.Run(plugin.WithMicro(service),// grpc 入口
plugin.WithGin(router), // http 入口
plugin.WithAddr(":8080")) // 开始服务(公用端口)
plg.Wait() // 等待结束(ctrl+c)
fmt.Println("done")
}
// Ctx gin.Context 到 context.Context 的转换
func Ctx(c *gin.Context) interface{} {
return context.Background()
}
package main
import (
"context"
"fmt"
proto "gmsec/rpc"
"github.com/gmsec/micro"
)
func main() {
// reg := registry.NewDNSNamingRegistry()
// grpc 相关 注册服务发现等
micro.NewService(
micro.WithName("lp.srv.eg1"),
// micro.WithRegisterTTL(time.Second*30), //指定服务注册时间
// micro.WithRegisterInterval(time.Second*15), //让服务在指定时间内重新注册
// micro.WithRegistryNameing(reg),
)
// ----------- end
say := proto.GetHelloClient()
ctx := context.Background()
resp, _ := say.SayHello(ctx, &proto.HelloRequest{Name:"xxjwxc"})
fmt.Println("result:", resp)
}
1
qq1340691923 2020-05-13 17:16:39 +08:00
顶一个!
|
2
xxjwxc OP @qq1340691923 感谢 ✨
|
3
yph007595 2020-05-13 18:58:33 +08:00
go-micro
|