gRPC真要取代WebApi了,你还学得过来吗?

今年1月份微软曾宣布要实验性的对.NET支持 gRPC-Web,然后在6月份已经正式发布了。这些天尝试了下,真的很强大,不负责任的预言下,RESTful的时代即将过去,而gRPC要成为革命者!先别急眼,下面我来详细说说。

gRPC是什么

可以用官网的一句话来概括:

A high-performance, open-source universal RPC framework

      所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。如下图所示就是一个典型的RPC结构图。

划重点:开源、高性能、通用。

gRPC是由google开源的,当下社区一片火爆,各种资源层出不穷,未来可期;高性能是其核心杀手锏,其强大的压缩传输通常能省下50%的带宽,是当下移动互联网最追逐的特性,而通用带来了无门槛,这个是之前RESTful依赖的Json最大的法宝。

介绍完gRPC的特性,下面要分析下为什么gRPC能革命当下最火的RESTful!如果还不熟悉gRPC怎么用的小伙伴儿,可以扫码领取下.NET Core下gRPC实战视频集。

技术革新 势不可挡

经历过从WebService和WCF,升级到WebApi过程的开发者心里都清楚,RESTful风格是重要原因,但是能流行起来的根本,还是Json的通用性和轻便性。而这些看家本领在gRPC面前不堪一击。

1

gRPC可以通过protobuf来定义接口,不仅跨语言通用,而且还能严格的接口约束。

2

通过protobuf可以将数据序列化为二进制编码,大幅减少数据传输,从而大幅提高性能。

3

gRPC可以方便地支持流式通信,依赖于Http2.0,为其所不能为。

除了以上优势,gRPC还有个致命的缺陷,限制了其应用场景,就是浏览器不能直接调用gRPC。然而这个问题现在被gRPC-Web解决了(备注:还有一些限制,如双向流不能支持等)!

gRPC-Web for .NET

gRPC-Web 即 gRPC for Web Clients。它是一个 JavaScript 库,使 Web 应用程序能够直接与后端 gRPC 服务通信,不需要 HTTP 服务器充当中介。它旨在使 gRPC 在更多情况下可用,包括但不限于一下几种:

1.   从浏览器调用 ASP.NET Core gRPC 应用程序

2.   JavaScript SPAs

3.   .NET Blazor Web Assembly apps

4.   在 IIS 和 Azure App Service 中托管 ASP.NET Core gRPC 应用程序

5.   从非 .NET Core 平台调用 gRPC —— 在所有 .NET 平台上,HttpClient 均不支持 HTTP/2,而 gRPC-Web 可用于从 Blazor 和 Xamarin 调用 gRPC 服务

根据微软的说法,gRPC 与 JSON 相比具有明显的性能优势。以 Blazor 的默认模板为例,相比 JSON,使用 gRPC 时,在提取数据页面上传输的数据减半,数据大小也从 627 字节减少到 309 字节。

目前,.NET 版 gRPC-Web 现已在 NuGet 上发布:

  1. Grpc.AspNetCore.Web ——  将 gRPC-Web 支持添加到 ASP.NET Core gRPC 服务

  2. Grpc.Net.Client.Web ——  从 .NET 调用 gRPC-Web 端点

继续学习吧

新的时代即将来临,熟悉gRPC是必须的了。然而,gRPC的学习资料,尤其是当下最新版本的,包括gRPC-Web的几乎没有。这里,给大家推荐下由资深架构师Clay老师直播讲解的gRPC集训课,将从gRPC的实战、原理、调优为大家逐一讲解,一站式搞定gRPC占据先机!课程为期3天,7月6日~8日晚上八点至九点半直播教学,这会儿扫码进学习群一律免费学习,群里还有微软MVP和多位架构师大佬为大家答疑解惑,限200名额!

Day1:gRPC实战

1.1 . gRPC服务端+Asp.Net Core调用

1.2  4种流式API应用

1.3  基于gRPC建立分布式架构

Day2:gRPC原理深入

2.1 Http2协议剖析,特性解读 

2.2 流式处理实现原理

2.3 gRPC-Web实战和解析

Day3:gRCP调优

3.1 gRPC集群和负载均衡

3.2鉴权授权和gRPCs

3.3 微服务架构下gRPC

最后再给大家送一波福利,一组《互联网开发核心技能》视频代码资料分享,请扫码领取!


扫描下方二维码,这些资料全部带走

获取本文全套学习资料

扫码添加

领取人数较多,添加以下号码也可免费领取哦!

微信号:18672997769

微软MVP组建的.Net社区

你加入了吗?

微软MVP:Eleven组建

国内首屈一指的.Net活跃社区

完整配套的学习资料

最新最热的技术文章

社区内优质岗位直推

全部免费奉送给大家

优质内容持续更新中

戳以下文章立即获取

????????????

禁止外传!社区内部VIP干货资料自取

(课程视频+面试题+技术专刊+岗位内推)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值