宝藏好物gRPCurl

gRPCurl简介

0bb2acd9583c36502fb7ebd0da7b6a6b.png

gRPCurl[1]是一个与gRPC服务器交互的命令行工具,可认为是gRPC的curl工具。

gRPCurl用于从命令行调用gRPC服务器支持的RPC方法,gRPC使用二进制编码(protobuf), 不能利用常规的curl工具(早期的curl版本还不支持HTTP/2)。

1. gRPCurl工具接受json编码的消息(对人类和脚本更友好), 工具底层会转化为protobuf与服务器交互。2.gRPCurl 必须了解服务的Protobuf协议(服务的schema),才能调用它们,     gRPCurl通过三种方式之一实现此目的

• gRPC服务器添加gRPC反射• 直接读取proto源文件• 加载编译后的protoset文件  (包含已被编码的proto描述文件)

gRPCurl特性

a8844145529e58f77f71fa3ebfafe7eb.png

gRPCurl是由gRPC社区创建的命令行工具,功能包括:

•调用gRPC服务,包括流式服务•使用gRPC反射进行服务发现•列出并描述 gRPC服务•支持调用安全(TLS)或者不安全(plain-text)的gRPC服务

ASP.NET Core设置grpc反射

39a359d65b09785759eb29830d7e1b30.png

•添加Grpc.AspNetCore.Server.Reflection包引用•Startup.cs注册反射

public void ConfigureServices(IServiceCollection services)
{services.AddGrpc();services.AddGrpcReflection();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{app.UseRouting();app.UseEndpoints(endpoints =>{endpoints.MapGrpcService<GreeterService>();if (env.IsDevelopment()){endpoints.MapGrpcReflectionService();}});
}

服务发现、服务调用

26b6f4577ef507e27a029c1f31e25c53.png

grpcurl list/describe 可以列出gRPC服务端反射的protobuf

1. grpcurl localhost:5001 list

greet.Greeter
grpc.reflection.v1alpha.ServerReflection


2. grpcurl localhost:5001 describe

greet.Greeter is a service:
service Greeter {rpc SayHello ( .greet.HelloRequest ) returns ( .greet.HelloReply );
}
grpc.reflection.v1alpha.ServerReflection is a service:
service ServerReflection {rpc ServerReflectionInfo ( stream .grpc.reflection.v1alpha.ServerReflectionRequest ) returns ( stream .grpc.reflection.v1alpha.ServerReflectionResponse );
}

 grpc -d ( Data for request contents) 传参调用gRPC方法

3. grpcurl -d {"name":"World"} localhost:5001 greet.Greeter/SayHello

{"message": "Hello World"
}

gRPCui

ebf52f4dd557b995bb90440be229b0a1.png

gRPCui[2] 是 gRPC 的交互式 Web UI,基于gRPCurl,并提供一个GUI来发现和测试 gRPC 服务,类似于 Postman 或 Swagger UI 等 HTTP 工具。

•安装:go install github.com/fullstorydev/grpcui/cmd/grpcui@latest•使用:grpcui localhost:5001

会立刻打开类Swagger窗口:

935463665bef24154e30efd5e340d827.png

输入Request Header、Request Data,自行倒腾。

d2779ebdf486869da676b40f949792c4.gif

就是这么神奇!

以上是利用gRPC服务反射获取protobuf的方式,gRPCurl还支持直接读取proto文件。

`grpcurl  -import-path ../protos   -proto  greet.proto -d {\"name\":\"World\"} localhost:5001 greet.Greeter/SayHello`

引用链接

[1] grpcur: https://github.com/fullstorydev/grpcurl
[2] gRPCui: https://github.com/fullstorydev/grpcui#installation

性感豹纹

fc9769e71279f36b9d483920aeb0ab55.gif HTTP1.1 Keep-Alive到底算不算长连接?

2ff2e33b9e73f0309d7b652b1dc545ec.gif Hostonly cookie是什么鬼?

edb8be613c50b268df26bf6036ab79d5.gif 前端镜像打包这么慢,你该反省一下dockerfile的姿势了

db0f7925b1fe1407bcdd75326dc595dd.gif

 SignalR 开发到生产部署闭坑指南

f81517d57a2ba6ff1ab10c0d1f6ecd72.gif

 难缠的布隆过滤器,这次终于通透了

bea1147f02f042f8f8bfc16cbf4cc80f.png

点个在看你最好看

07d796791f729d13167122fa1ce258f2.png

仅代表此刻认知,文章永久更新地址,请移步原文!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数组与链表的对比

特点对比&#xff1a;1、存取方式上&#xff0c;数组可以顺序存取或者随机存取&#xff0c;而链表只能顺序存取&#xff1b;2、存储位置上&#xff0c;数组逻辑上相邻的元素在物理存储位置上也相邻&#xff0c;而链表不一定&#xff1b;3、存储空间上&#xff0c;链表由于带有指…

php 查询数据是否大于,怎么实现从数据查询数据的时候判断如果数据大于N条分次查询 递归吗?...

比如数据库有300000条数据 现在根据条件查询符合的有30000条数据 一次取太多了可能慢或者其他问题 我想每次取10000 三次取完 这只是个例子 应该怎么实现啊&#xff1f;用递归吗&#xff1f;告知下 谢谢&#xff01;&#xff01;&#xff01;还有就是如果查俩张表的数据 合并在…

黑白图像(DFS)

输入一个n*n的黑白图像&#xff08;1表示黑色&#xff0c;0表示白色&#xff09;&#xff0c;任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点&#xff0c;就说它们属于同一个八连块。如图6-11所示的图形有3个八连块。 图6-11 拥有3个八连块的黑白图形 【分析…

快速学习使用springmvc、strust2、strust1以及它们的对比

1、如何快速学习springmvc 首先&#xff0c;我们需要在复制spring相关的jar包到web-inf/lib里面去&#xff0c;然后在web.xml里面加入以下代码&#xff0c;相当于springmvc里面的servlet,这里只说明了一些常见的用法&#xff0c;如果要了解springmvc里面的控制器这些详细原理可…

你的输入法都暴露了些啥?

1 三哥对柠檬茶下手了要不要来一杯&#xff1f;▼2 能成功求婚的应该就是真爱了吧&#xff1f;▼3 气泡的花样玩法▼4 很正确&#xff1f;▼5 高手过招&#xff01;牛▼6 幽默中带着点死亡气息▼7 输入法&#xff1a;我暴露了一切▼你点的每个赞&#xff0c;我都认真当成了…

从 ThreadLocal 到 AsyncLocal

前些天跟大佬们在群里讨论如何在不使用构造函数&#xff0c;不增加方法参数的情况下把一个上下文注入到方法内部使用&#xff0c;得出的结论是 AsyncLocal 。感叹自己才疏学浅&#xff0c;居然才知道有 AsyncLocal 这种神器。于是赶紧恶补一下。ThreadLocal 要说 AsyncLocal 还…

Sersync+Rsync 增量实时同步

准备环境&#xff1a; rsync服务器&#xff1a;172.16.3.21sersync2服务器&#xff1a;172.16.3.23一、 rsync服务器先把原来的rsync包删掉yum remove rsync-2.6.8-3.1 -y,然后到http://rsync.samba.org/下载rsync包我用的包如下图所示利用securecrt上传本地[rootacong tongbu1…

浅谈RBF函数

所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。 最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc…

Repeater嵌套绑定Repeater

cs代码&#xff1a; private void RpTypeBind() {//GetQuestionTypeAndCount() 返回一个datatable this.rptypelist.DataSource LiftQuestionCtr.GetQuestionTypeAndCount(); this.rptypelist.DataBind(); } …

字符串之变形数

字符串之变形数 题目:给定2个字符串str1和str2,如果str1和str2出现的字符种类和每个字符出现的个数也一样,那么str1与str2互为变形数。请用函数实现。 例子:str1="123", str2="231" 返回 true 例子:str1="123", str2="2311" 返回…

一个彻底改变世界的思想

全世界只有3.14 % 的人关注了爆炸吧知识因随机性的到来阔然开朗蒙特卡罗赌场蒙特卡罗&#xff08;Monte Carlo&#xff09;是摩纳哥公国&#xff08;Principality of Monaco&#xff09;的一座城市。摩纳哥公国坐落在法国的东南方&#xff0c;总面积为2.02平方公里&#xff0c;…

单元测试 | 如何在Mock时匹配匿名类型参数

前言假设&#xff0c;我们需要单元测试如下方法:public User GetUser(int id) {return Repository.Query<User>(new { ID id }).FirstOrDefault(); }而对于Repository.Query&#xff0c;我们需要进行Mock。怎么实现&#xff1f;不匹配具体参数值如果我们不关心参数的具体…

java中imp结尾,imp java

适配器模式之桥梁模式设计模式目录 http://blog.csdn.net/fenglailea/article/details/52733435风.fox桥梁模式 Bridge Pattern将抽象和实现解耦&#xff0c;使得两者可以独立地变化通用类图组成抽象化角色 Abstraction...文章风来了2016-10-06972浏览量expOracle数据导入导出i…

Cookies

一&#xff0c;前言 Cookies想必所有人都了解&#xff0c; 但是未必所有人都精通。本文讲解了Cookies的各方面知识。 二&#xff0c;基础知识 1.什么是Cookies Cookie 是一小段文本信息&#xff0c;伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问…

用字符串表达式访问JSON数据(java,fastjson)

2019独角兽企业重金招聘Python工程师标准>>> //单元科技-www.ccell.com.cn 技术部,开源 //XML数据有XPATH 如"root/rows[id1]/name" //在JS中JSON数据可以对象方式访问 //java中怎么 用字符串表达式访问JSON数据? 找了很久没有找到,自己写一个,以减小代…

C语言学习

时间&#xff1a;20160302 (1) C语言中&#xff0c;很多标准头文件&#xff0c;这样的头文件好处在于&#xff0c;所有的实现方法都在头文件中进行定义&#xff0c;后期对方法进行修改时&#xff0c;可以只需要改动头文件&#xff0c;就可以了&#xff0c;其他的地方也需要对应…

怎样分辨谁才是朋友圈里的真·贵族?

不是我不明白&#xff0c;这世界变化快但在这个看1分钟视频都要2倍速的世界里有一群人却仍然愿意每天花5分钟阅读2000字以上的文字信息这是多么高贵的一种精神所以高贵的你&#xff0c;值得更好的内容今天我们精选出8个优质公号他们有趣有料、有思想有温度绝对值得你的关注长按…

Android之如何解决Android studio运行出现的HAX kernel modules is not installed

HAX kernel modules is not installed 很久之前,我安装了Android studio,运行时控制台打印出这个,emulator:ERROR:x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and useble, CPU acceleration statis:HAX kern…

Elastic AMP监控.NET程序性能

什么是Elastic AMPElastic APM 是一个应用程序性能监控系统。它可以请求的响应时间、数据库查询、对缓存的调用、外部 HTTP 请求等的详细性能信息&#xff0c;可以实时监控软件服务和应用程序。这可以帮助我们快速查明和修复性能问题。Elastic APM 还会自动收集未处理的错误和异…

java分页的工具类,java分页工具类

PageBean-分页package com.soyea.util;import java.io.Serializable;import java.util.List;/*** 分页工具类*/public class PageBean implements Serializable {private static final long serialVersionUID -8741766802354222579L;private int pageSize5; // 每页显示多少条…