当前位置: 首页 > news >正文

个人名义做网站南京中企动力有限公司

个人名义做网站,南京中企动力有限公司,好看好用的wordpress主题,网站UI怎么做以下是一个基于 go-zero 框架的简单 RPC 服务示例,该示例包括一个服务端和一个客户端通过 gRPC 进行通信。 服务端 1、定义 .proto 文件 在 rpc/add 目录下创建 adder.proto 文件,定义 RPC 服务: syntax "proto3";package add…

以下是一个基于 go-zero 框架的简单 RPC 服务示例,该示例包括一个服务端和一个客户端通过 gRPC 进行通信。

服务端

1、定义 .proto 文件

在 rpc/add 目录下创建 adder.proto 文件,定义 RPC 服务:

syntax = "proto3";package adder;service Adder {rpc Add(AddRequest) returns (AddResponse) {}
}message AddRequest {int32 a = 1;int32 b = 2;
}message AddResponse {int32 result = 1;
}

2、生成代码

使用 protoc 工具生成 Go 代码:

protoc --go_out=plugins=grpc:. adder.proto

3、实现服务

创建 adder_grpc.go 文件,实现 Adder 服务:

package adderimport ("context"
)type AdderServer struct{}func (s *AdderServer) Add(ctx context.Context, req *AddRequest) (*AddResponse, error) {result := req.GetA() + req.GetB()return &AddResponse{Result: result}, nil
}

4、启动服务

创建 server.go 文件,启动 gRPC 服务:

package mainimport ("flag""fmt""net""github.com/zeromicro/go-zero/core/conf""github.com/zeromicro/go-zero/core/logx""github.com/zeromicro/go-zero/zrpc""github.com/your/path/to/rpc/add"
)var configFile = flag.String("f", "etc/config.yaml", "the config file")func main() {flag.Parse()var c zrpc.RpcServerConfconf.MustLoad(*configFile, &c)server := zrpc.MustNewServer(c)defer server.Stop()adderServer := &add.AdderServer{}add.RegisterAdderServer(server.Server, adderServer)fmt.Printf("Starting rpc server on %s...\n", c.ListenOn)server.Start()
}

5、配置文件

在 etc 目录下创建 config.yaml 文件,配置服务地址和端口:

Name: adder
ListenOn: 127.0.0.1:8080

6、启动服务端

运行 server.go 文件,启动 RPC 服务:

go run server.go

客户端

1、创建客户端

创建 client.go 文件,创建 gRPC 客户端:

package mainimport ("context""fmt""time""github.com/zeromicro/go-zero/zrpc""github.com/your/path/to/rpc/add"
)func main() {client := zrpc.MustNewClient("127.0.0.1:8080")defer client.Conn.Close()adderClient := add.NewAdderClient(client.Conn)ctx, cancel := context.WithTimeout(context.Background(), time.Second)defer cancel()req := &add.AddRequest{A: 5,B: 7,}resp, err := adderClient.Add(ctx, req)if err != nil {fmt.Println("Error:", err)} else {fmt.Println("Result:", resp.GetResult())}
}

2、运行客户端

运行 client.go 文件,调用 RPC 服务:

go run client.go

输出结果:

Result: 12

至此,一个基于 go-zero 框架的简单 RPC 服务示例完成。

http://www.yayakq.cn/news/873062/

相关文章:

  • 软文网站学用php做网站
  • 怎样经营好一个网站建设区服务网站
  • 怎么创建网站教程网站返回首页怎么做的好看
  • 黄石网站建设凡科建站下载
  • 网站制作软件排名怎么推广自己的店铺
  • 网站建设培训会讲话网站作业免费下载
  • 平顶山网站建设遵义网约车有哪些平台
  • 高端h5手机网站设计案例跨境电商平台推广
  • pdf文件打印乱码seo关键词排名优化联系方式
  • 免费注册网站免登录个人未授权做的网站
  • 最专业的营销网站建设公司wordpress拖拽式布局
  • 网站做app用什么语言广东省优质高职院校建设网站
  • 高端的网站设计制作延吉网站开发公司有哪些
  • 做手表网站用什么源码比较好优化设计五年级下册语文答案
  • 网站优化排名教程石家庄建设网站的公司
  • 营销型网站建设专家长春找工作哪个网站好
  • 响应式网站建设品牌全网天下天津武清做网站tjniu
  • 网站建设与管理的实训建设工程施工合同组成
  • 北京官网seo收费优化网站建设seo
  • 郑州建站系统费用湖南省郴州市嘉禾县邮政编码
  • 网站运营分析报告网站建设研究意义
  • 手机营销型网站建设网站设计注册怎么做
  • 在线购物网站建设的需求分析网站个人建设
  • 情人节网站怎么做江干建设局网站
  • 专业设计网站效果营销策划的流程
  • 响应式网站的字体设置上海公司查询网站
  • php网站开发机试题目网站城市跳转怎么做
  • 帝国系统做网站地图渭南市工程建设项目审批平台
  • 推广网站的四种方法如何建立网址
  • 建设银行甘肃省分行网站湘潭做网站电话磐石网络