gRPC Ecosystem 初探

grpc是目前使用很广泛的远程过程调用库,在使用过程中,我们通常会使用protoc命令将proto文件转成特定的代码进行使用。那一些复杂点的应用有没有可以支撑的工具或类库呢。

前段时间在进行自定义grpc tls证书认证的过程中,知道了有一个github项目,叫gRPC Ecosystemhttps://github.com/grpc-ecosystem

这个项目里提供了很多和grpc相关的支撑库,今天去了解了大概,写一篇文章记录一下,方便有需要的同学可以按图索骥。

项目名称所属分类开发语言Star数量介绍
grpc-ecosystem/grpc-gateway网关服务Go15000+

gRPC到JSON网关

该库为生成器,也就是通过proto在生成grpc服务器的同时,生成一个json的网关程序

同时,该生成器还会生成openapiv2版本的网关功能描述文件

grpc-ecosystem/grpc-health-probe健康探测服务  Go1200+

A command-line tool to perform health-checks for gRPC applications in Kubernetes etc.

该客户端主要是探测gRPC服务的健康度,依循GRPC Health Checking Protocol​​

按介绍的说法,使用的前提是服务器段要是实现该协议的服务器。 

grpc-ecosystem/protoc-gen-grpc-gateway-ts网关服务

Go(实现语言)

Typescript(目标语言)

102

 protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript clients that connect the web frontend and golang backend fronted by grpc-gateway. 

和第一个Gateway项目配合的Typescript版本的客户端的生成器。

有点绕,就是说生成的客户端的语言是Typescript,生成器本身是Go

本质是一种代码生成器,生成的Typescript库可以直接引用,并对外暴露gRpc描述的函数方法。

grpc-ecosystem/go-grpc-middleware扩展支持库Go5200+

Golang gRPC Middlewares: interceptor chaining, auth, logging, retries and more. (github.com)

为grpc服务器提供增强功能的扩展库,使用后,会方便TLS客户端认证等服务器高级使用的体验感,这个库应该对grpc开发会比较有帮助。

具体功能见附录1

grpc-ecosystem/grpcdebug调试工具Go59一个命令行的调试工具,关注人较少,和第二个类似,也需要服务器端整合到代码里一个服务器端,这个工具作为一个客户端,连接后,获得服务端的调试信息
grpc-ecosystem/java-grpc-prometheus扩展支持库Java212

Java interceptors which can be used to monitor Grpc services using Prometheus. (github.com)

和gRPC java实现相配合的Prometheus日志整合库

grpc-ecosystem/awesome-grpc样例多种6200+学习资料库
GitHub - grpc-ecosystem/grpc-httpjson-transcoding网关服务C++143另一个C写的提供JSON网关的库,Star数量很少,要配合istio使用,看起来用的人不多
grpc-ecosystem/polyglot通用客户端Java10一个采用Java的通用grpc客户端实现,奇怪,干嘛不用go
更多用处不大的库列表见此,gRPC Ecosystem (github.com)

这里面第一个gRPC JSON Gateway应该是用处比较大的一个了,如果需要直接把gRPC服务作为常见API服务提供给用户的话,可以使用。

另外就是Middlewares在自定义认证,扩展日志功能等方面用处较大,自定义认证主要是面向采用TLS进行客户端认证的gRPC服务,如果需要对客户端证书进行自定义的认证过程,或者采用http basic auth等方式进行客户端认证,会需要用到这个库提供的功能,再进行二次开发。

而扩展日志引用后,会把grpc内部流程进行日志的存储,对于方便调试错误用户较大。

附录1:go-grpc-middleware主要功能项

Auth

  • grpc_auth - 用于自定义认证过程的帮助库

Logging

Monitoring

Client

  • grpc_retry - 客户端重试机制的辅助类(grpc客户端确实有必要实现重试,因为并不能保证100%成功,且失败后因为grpc封装较深,不太好追踪)

Server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百家饭AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值