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

网站栏目页模板今天的新闻联播内容摘抄

网站栏目页模板,今天的新闻联播内容摘抄,凡客科技,魔兽wordpress文章目录 前言gRPC是什么Go语言的gRPC技术栈准备工作接口定义代码生成服务端代码编写客户端代码编写效果演示完整代码链接最后 前言 你好#xff0c;我是醉墨居士#xff0c;这篇博客想帮助初学者能够快速入门gRPC#xff0c;希望能够为你节省宝贵的时间#xff0c;让时间… 文章目录 前言gRPC是什么Go语言的gRPC技术栈准备工作接口定义代码生成服务端代码编写客户端代码编写效果演示完整代码链接最后 前言 你好我是醉墨居士这篇博客想帮助初学者能够快速入门gRPC希望能够为你节省宝贵的时间让时间花费在有价值的事情上 gRPC是什么 gRPC是Google公司基于HTTP/2传输协议与Protobuf 编码协议 开发的跨语言的高性能、开源的远程过程调用RPC框架具有高效的通信机制、跨语言支持、强大的服务定义与拓展能力 Go语言的gRPC技术栈 基于Unix Socket协议或者TCP协议实现HTTP/2协议在HTTP/2协议的基础上构建了针对Go语言的gRPC核心库应用程序通过gRPC插件工具生成Stub代码来和gRPC核心库进行交互 准备工作 安装protoc编译器 下载地址https://github.com/protocolbuffers/protobuf/releases 选择自己对应的操作系统与架构类型的安装包 安装go语言相关的protoc与gRPC插件 go install google.golang.org/protobuf/cmd/protoc-gen-gov1.28 go install google.golang.org/grpc/cmd/protoc-gen-go-grpcv1.2更新 PATH使 protoc 编译器能够找到插件 export PATH$PATH:$(go env GOPATH)/bin接口定义 通过编写proto文件来定义接口信息定义服务和消息 // The greeting service definition. service Greeter {// Sends a greetingrpc SayHello (HelloRequest) returns (HelloReply) {} }// The request message containing the users name. message HelloRequest {string name 1; }// The response message containing the greetings message HelloReply {string message 1; }代码生成 使用 protoc 编译器将 helloworld.proto 文件编译成 Go 语言的代码 和 gRPC 相关的代码 protoc --go_out. --go_optpathssource_relative \--go-grpc_out. --go-grpc_optpathssource_relative \helloworld/helloworld.protoprotoc这是 Protocol Buffers 编译器的命令行工具。 –proto_path.这是一个编译选项指定了搜索 .proto 文件的目录。在这个例子中它被设置为当前目录.意味着编译器会在当前目录下搜索 .proto 文件。 –go_out.这个选项告诉 protoc 编译器生成 Go 语言的代码并且将生成的代码放在当前目录.。 –go_optpathssource_relative这个选项是传递给 Go 语言代码生成器的pathssource_relative 指定了生成的 Go 代码中的 import 路径应该是相对于源 .proto 文件的路径。 –go-grpc_out.这个选项告诉 protoc 编译器生成 Go 语言的 gRPC 代码并且将生成的代码放在当前目录.。 –go-grpc_optpathssource_relative这个选项是传递给 Go 语言 gRPC 代码生成器的pathssource_relative 指定了生成的 Go gRPC 代码中的 import 路径应该是相对于源 .proto 文件的路径。 helloworld/helloworld.proto这是指定要编译的 .proto 文件的路径。在这个例子中.proto 文件位于 helloworld 目录下文件名为 helloworld.proto。 普通的消息类型代码用于序列化和反序列化 Protocol Buffers 消息。 gRPC 服务端和客户端代码用于实现远程过程调用。 这些代码都是根据 helloworld.proto 文件中定义的消息和服务生成的生成的代码会放置在执行命令的当前目录中。如果你的 .proto 文件中定义了 package那么生成的 Go 文件将会有相应的 package 名称并且 import 路径会相对于 .proto 文件的源路径。服务端代码编写 package mainimport (contextfmtgo-examples/grpc/hellonetgoogle.golang.org/grpc )// 接口实现 type GreeterServer struct {hello.UnimplementedGreeterServer }// 实现SayHello方法 func (s *GreeterServer) SayHello(ctx context.Context, in *hello.HelloRequest) (*hello.HelloReply, error) {fmt.Printf(Received: %s\n, in.GetName())return hello.HelloReply{Message: Hello in.Name}, nil }func main() {// 创建监听器lis, err : net.Listen(tcp, fmt.Sprintf(:%d, 40404))if err ! nil {panic(err)}defer lis.Close()// 创建grpc servers : grpc.NewServer()// 注册服务hello.RegisterGreeterServer(s, GreeterServer{})// 启动服务s.Serve(lis) }客户端代码编写 package mainimport (contextfmtgo-examples/grpc/hellotimegoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecure )func main() {// 连接远程服务器conn, err : grpc.NewClient(localhost:40404, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {panic(err)}defer conn.Close()// 创建客户端实例cli : hello.NewGreeterClient(conn)ctx, cancel : context.WithTimeout(context.Background(), 3*time.Second)defer cancel()// 调用服务端方法resp, err : cli.SayHello(ctx, hello.HelloRequest{Name: world})if err ! nil {panic(err)}fmt.Printf(Greeting: %s\n, resp.Message) }效果演示 完整代码链接 https://github.com/zm50/go-examples/tree/master/grpc 最后 我是醉墨居士希望用最简单的文章帮助你快速入门Go语言进行gRPC开发如果对你有所帮助请多多支持呀
http://www.w-s-a.com/news/139078/

相关文章:

  • 怎样建网站赚钱贵州seo和网络推广
  • 创建网站的工具站内seo优化
  • 网站特效 站长查询网网站
  • 百度移动端网站网站建设设计思想
  • 青岛建设官方网站南宁制作企业网站
  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码
  • 做网站行情郑州微信网站开发
  • 河间网站建设制作null wordpress theme
  • h5网站制作网站开发网站建设文翻译工作
  • 网站建设 税种秦皇岛哪有网站优化公司
  • 专业开发网站设计找人做网页需要多少钱
  • 手机购物网站 建站网站建设网站制作网站设计
  • 基于iview的网站开发模板小程序制作需要什么语言
  • 精美网站设计保定建行网站首页登录
  • 网站建设常见问题做网站保存什么格式最好
  • 营销型网站建设与网页设计网站建设 amp 找VX cp5173
  • 新网站该如何做网站优化呢儿童手工
  • 湖北现代城市建设集团网站搜索引擎优化的作用
  • 上海做网站吧开一家软件开发公司需要什么
  • 阿里巴巴网站建设改图片建设厅官方网站河南
  • 邓砚谷电子商务网站建设镇江网