gmsec是一款Golag微服务集成框架。
特点打通grpc+gi,同时支持grpc跟restful模式grpc,gi公用端口gorm嵌入,自动数据库代码生成golag微服务集成框架grpcgorm自动构建(gormt)gi参数自动绑定(girpc)ds注册发现(mds)markdow/midoc文档自动导出安装istall
proto环境安装
makeistall本地环境搭建(gmsec为例)makege新建一个服务makeewservice=[服务名]proto定义sytax="proto3";//指定proto版本packageproto;//指定包名optiogo_package=".;proto";//指定路径//定义Hello服务serviceHello{//定义SayHello方法rpcSayHello(HelloRequest)returs(HelloReply){}}//HelloRequest请求结构messageHelloRequest{strigame=1;//名字}//HelloReply响应结构messageHelloReply{strigmessage=1;//消息}服务端代码示例packagemaiimport("cotext""fmt"proto"gmsec/rpc/gmsec""github.com/gmsec/goplugis/api""github.com/gi-goic/gi""github.com/gmsec/goplugis/plugi""github.com/gmsec/micro""github.com/xxjwxc/girpc")fucmai(){//grpc相关初始化服务service:=micro.NewService(micro.WithName("lp.srv.eg1"),)h:=ew(hello)proto.RegisterHelloServer(service.Server(),h)//服务注册//-----------ed//gi相关base:=girpc.New(girpc.WithCtx(api.NewAPIFuc),girpc.WithDebug(dev.IsDev()))router:=gi.Default()v1:=router.Group("/xxjwxc/api/v1")base.Register(v1,h)//对象注册//------edplg,_:=plugi.Ru(plugi.WithMicro(service),//grpc入口plugi.WithGi(router),//http入口plugi.WithAddr(":8080"))//开始服务(公用端口)plg.Wait()//等待结束(ctrl+c)fmt.Pritl("doe")}//Ctxgi.Cotext到cotext.Cotext的转换fucCtx(c*gi.Cotext)iterface{}{returcotext.Backgroud()}客户端代码:packagemaiimport("cotext""fmt"proto"gmsec/rpc/gmsec""github.com/gmsec/micro")fucmai(){//reg:=registry.NewDNSNamigRegistry()//grpc相关注册服务发现等micro.NewService(micro.WithName("lp.srv.eg1"),//micro.WithRegisterTTL(time.Secod*30),//指定服务注册时间//micro.WithRegisterIterval(time.Secod*15),//让服务在指定时间内重新注册//micro.WithRegistryNamig(reg),)//-----------edsay:=proto.GetHelloCliet()ctx:=cotext.Backgroud()resp,_:=say.SayHello(ctx,&proto.HelloRequest{Name:"xxjwxc"})fmt.Pritl("result:",resp)}更多示例=> 传送门正在做etcdv3传送门









评论