首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    [大家的项目] 基于rust的,gRPC动态代代理,无需proto文件自动http转gRPC

    沟通服务间接口内容(尤其是前后端接口),是非常让人头疼的事。极其容易扯皮。接口文档写起来也很痛苦,每个字段的改动都需要及时更新,否则就会出问题。服务端通信如果用rpc通信的话,一般会有proto或者thrift文件。这个文件很长时间里被我们当成接口文档用,用着用着发现,真tm好用。既减少了扯皮,还不用写接口文档。那可不可以用grpc和前端通信那,一开始我们的做法是用grpc-gateway。把grpc的接口映射成http接口。但这种方式需要编译gateway的pb文件,对服务也是有侵入的。后来随着我在公司的时间越来越长,接手的服务越来越多(经常需要发版的项目就有十几个),这种方式维护起来十分糟心,后一直想寻求一种一劳永逸的解决方法?

    01

    在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

    gRPC 是一种可以跨语言运行的现代高性能远程过程调用 (RPC) 框架。gRPC 实际上已经成为 RPC 框架的行业标准,Google 内外的组织都在使用它来从微服务到计算的“最后一英里”(移动、网络和物联网)的强大用例。 gRPC是一个高性能的开源的通用RPC框架,由Google公司开发,支持常用的C++、Java、Python、C#/.Net、Go、Node、Dart、Kotlin、Object-C、PHP、Ruby等语言,采用protobuf作为数据交换格式,并且采用C++开发,支持Windows 、Linux、macOS跨平台开发。对于跨语言服务调用非常方便,只要使用protobuf定义接口协议,然后按照gRPC语言SDK调用即可。比如我们使用C++对环保数采仪器设备通过串口或者网口传送的数据协议如Modbus协议、HJ212协议、或者厂商自定义的协议进行解析之后,将数据存放到本地数据库,这个时候我们如何将C++的数据传给前端网页呢? 这个时候可以使用多种方式。比如通过数据库、HTTP协议、WebSocket协议、RPC远程过程调用等方式。 我之前做环保的时候,采用C++和环保硬件设备打交道,通过C++后台程序将数采仪数据解析之后存入到本地Sqlite数据库中(分表分页存储),然后由于展示的网页比较简单,只是用网页展示当前站点的数据,前端采用ElementUI和Vue.js,后端采用Node.js。另外,C++后台写了一套RPC服务端接口,Node.js通过RPC客户端调用C++的后台RPC服务,双方之间通过Google Protobuf数据协议交互。

    00
    领券