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

蜘蛛网站长工作职责jsp网站开发框架

蜘蛛网站长工作职责,jsp网站开发框架,wordpress文章输出数,建设银行网站钓鱼网站1、grpcurl grpcurl项目地址 #xff1a;https://github.com/fullstorydev/grpcurl 一般情况下测试 gRPC 服务#xff0c;都是通过客户端来直接请求服务端。如果客户端还没准备好的话#xff0c;也可以使用 BloomRPC (https://appimage.github.io/BloomRPC/)这样的 GUI 客…1、grpcurl grpcurl项目地址 https://github.com/fullstorydev/grpcurl 一般情况下测试 gRPC 服务都是通过客户端来直接请求服务端。如果客户端还没准备好的话也可以使用 BloomRPC (https://appimage.github.io/BloomRPC/)这样的 GUI 客户端。 如果环境不支持安装这种GUI客户端的话那么有没有一种工具类似于 curl 这样的直接通过终端在命令 行发起请求呢答案肯定是有的就是本文要介绍的 grpcurl。 grpcurl是一个命令行工具使用它可以在命令行中访问gRPC服务就像使用curl访问http服务一样。 下面通过一个案例来展示grpcurl的使用。 1.1 在gRPC服务中注册reflection服务 gRPC服务是使用Protobuf(PB)协议的而PB提供了在运行时获取Proto定义信息的反射功能。 grpc-go https://github.com/grpc/grpc-go中的google.golang.org/grpc/reflection http://google.golang.org/grpc/reflection包就对这个反射功能提供了支持。 1.2 编写proto hello.proto文件的内容 syntax proto3;package proto;option go_package ./proto;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; }1.3 编译proto $ protoc -I . --go_outpluginsgrpc:. ./hello.proto1.4 服务端 server.go内容如下 package mainimport (contextfmtdemo/protogoogle.golang.org/grpcgoogle.golang.org/grpc/reflectionlognet )type greeter struct { }func (*greeter) SayHello(ctx context.Context, req *proto.HelloRequest) (*proto.HelloReply, error) {fmt.Println(req)reply : proto.HelloReply{Message: hello}return reply, nil }func main() {lis, err : net.Listen(tcp, :50051)if err ! nil {log.Fatalf(failed to listen: %v, err)}server : grpc.NewServer()// 注册 grpcurl 所需的 reflection 服务reflection.Register(server)// 注册业务服务proto.RegisterGreeterServer(server, greeter{})fmt.Println(grpc server start ...)if err : server.Serve(lis); err ! nil {log.Fatalf(failed to serve: %v, err)} }在main.go中使用reflection.Register(server)注册了reflection服务。 运行服务 [rootzsx demo]# go run server.go grpc server start ...# 项目结构 $ tree demo/ demo/ ├── go.mod ├── go.sum ├── hello.proto ├── proto │ └── hello.pb.go ├── request.json └── server.go1 directory, 6 files1.5 grpcurl 安装 如果有 Go 环境的话可以通过 go tool 来安装 # $ go install github.com/fullstorydev/grpcurl/cmd/grpcurl $ go install github.com/fullstorydev/grpcurl/cmd/grpcurllatest$ grpcurl -version grpcurl dev build no version set1.6 grpcurl 使用 在使用 grpcurl 时需要通过 -cert 和 -key 参数设置公钥和私钥文件表示链接启用了TLS协议的服务。 对于没有启用TLS协议的 gRPC 服务通过 -plaintext 参数忽略 TLS 证书的验证过程。 如果是 Unix Socket 协议则需要指定 -unix 参数。 1.6.1 查看服务列表 $ grpcurl -plaintext 127.0.0.1:50051 list输出 [rootzsx demo]# grpcurl -plaintext 127.0.0.1:50051 list grpc.reflection.v1alpha.ServerReflection proto.Greeter1.6.2 查看某个服务的方法列表 $ grpcurl -plaintext 127.0.0.1:50051 list proto.Greeter输出 [rootzsx demo]# grpcurl -plaintext 127.0.0.1:50051 list proto.Greeter proto.Greeter.SayHello1.6.3 查看方法定义 $ grpcurl -plaintext 127.0.0.1:50051 describe proto.Greeter.SayHello输出 [rootzsx demo]# grpcurl -plaintext 127.0.0.1:50051 describe proto.Greeter.SayHello proto.Greeter.SayHello is a method: rpc SayHello ( .proto.HelloRequest ) returns ( .proto.HelloReply );1.6.4 查看请求参数 $ grpcurl -plaintext 127.0.0.1:50051 describe proto.HelloRequest输出 [rootzsx demo]# grpcurl -plaintext 127.0.0.1:50051 describe proto.HelloRequest proto.HelloRequest is a message: message HelloRequest {string name 1; }1.6.5 请求服务 $ grpcurl -plaintext -d {\name\:\rao\} 127.0.0.1:50051 proto.Greeter/SayHello输出 [rootzsx demo]# grpcurl -plaintext -d {\name\:\rao\} 127.0.0.1:50051 proto.Greeter/SayHello {message: hello }-d 参数后面也可以跟 表示从标准输入读取 json 参数一般用于输入比较复杂的 json 数据也可以用于测试 流方法。 $ cat request.json | grpcurl -d -plaintext 127.0.0.1:50051 proto.Greeter.SayHello输出 [rootzsx demo]# cat request.json | grpcurl -d -plaintext 127.0.0.1:50051 proto.Greeter.SayHello {message: hello }1.7 可能遇到的错误 可能会遇到四个报错 1.7.1 gRPC Server 未启用 TLS 报错信息 Failed to dial target host 127.0.0.1:50051: tls: first record does not look like a TLS handshake解决 请求时增加参数-plaintext参考上面的命令。 1.7.2 服务没有启动 reflection 反射服务 报错信息 Failed to list services: server does not support the reflection API解决 这行代码是关键一定要包含 // 注册grpcurl所需的reflection服务 reflection.Register(server)1.7.3 参数格式错误 报错信息 Error invoking method greet.Greeter/SayHello: error getting request data: invalid character n looking for beginning of object key string解决 -d 后面参数为 json 格式并且需要使用 包裹起来。 1.7.4 参数太多 Too many arguments. Try grpcurl -help for more details.解决 grpcurl -plaintext -d {\name\:\rao\} 127.0.0.1:50051 proto.Greeter/SayHello1.8 总结 grpcurl这个工具从使用上十分简单查看服务信息基本上类似展示的proto文件的内容调用服务这个功能还是很 实用的可以整合到k8s的Pod镜像中用于在k8s集群内部简单测试gRPC服务。
http://www.pierceye.com/news/467426/

相关文章:

  • 办网站需要什么my23777免费域名查询
  • 销售网站开发步骤网站域名到期了怎么办
  • 怎么做注册账号的网站网页打不开视频播放不了是什么问题
  • 江阴市住房和城乡建设局网站免费网页游戏poki
  • 个人网站设计网站建设的基本特点
  • 泉州专业做网站网站被k 原因
  • 18款禁用网站app直播建设部资质网站
  • 免费完整版的网站模板商丘行业网站建设开发公司
  • 网站与微网站区别推广通
  • 京东网站建设的意义wordpress美图
  • 佛山市外贸网站建设公司营销型网站建设 兼职
  • 四川省城乡与建设厅网站中国十大it培训机构排名
  • 国家高新技术企业查询网站汕头整站优化
  • asp网站生成静态在线网站软件免费下载
  • wordpress古腾堡编辑器广州建网站开发seo型企业网站
  • 易云巢做营销型网站wordpress下载视频播放器
  • google网站哪里找人做网站
  • 外贸网站建设如何做呢百度热搜风云榜
  • ASP网站建设实训报告总结山西建设公司网站
  • 网站建设使用的什么软件房屋设计风格
  • 厦门网站建设公司排名杭州小型网站建设服务
  • 西安建设主管部门官方网站中文搭建式软件开发工具
  • 南通网站建设论文网站首页导航栏怎么做
  • 建设网站的运行费包括什么北京市建设工程信息网安徽兴创
  • 我想在泉州做网站上上海网站设计
  • 百度seo网站优化一 网站开发体会
  • 成都58手机微信网站建设名录tiktok跨境电商好做吗
  • 电子科技 深圳 网站建设怎么做打码网站
  • 南宁小程序开发网站建设公司公司网站建设怎么选择
  • erp网站代做项目网络进度图