.NET Core ❤ gRPC

这篇内容主要来自Microsoft .NET团队程序经理Sourabh Shirhatti的博客文章:https://grpc.io/blog/grpc-on-dotnetcore/, .NET Core 3.0现已提供grpc的.NET 托管实现 grpc-dotnet, gRpc 取代WCF成为 .NET的一等公民。自2018年11月以来,Microsoft的.NET团队一直与gRPC团队密切合做,共同开发适用于.NET Core的gRPC的全新彻底托管实现。git

gRpc 有很是多的公司在使用,好比 Salesforce,Netflix,Spotify,Fanatics等公司(固然还有Google),特别是整个CNCF 主导下的云原生应用开发生态里gRpc 有着举足轻重的地位。github

.NET目前有两种正式的gRPC实现:编程

  • Grpc.Core:基于本地gRpc Core库的原生 gRpc C#实现,支持.NET Core 2.1/.NET Framework 4.5+/Mono 4+ 。
  • grpc-dotnet:彻底以C#编写的新实现,没有任何本机依赖性,而且基于最新发布的.NET Core 3.0。

这两种实现并排共存,而且在可用功能,集成,支持的平台,成熟度和性能方面各有各的优点。两种实现共享用于调用和处理RPC的相同API,用户可以选择最能知足其需求的实现,而不会限制你必须使用某个平台。服务器

与现有的基于C-Core的实现(Grpc.Core)不一样,新库(grpc-dotnet)使用.NET Core基本类库(BCL)中的现有网络实现。下图突出显示了现有的Grpc.Core库和新的grpc-dotnet库之间的区别。网络

gRPC .NET堆栈

在服务器端,Grpc.AspNetCore.Server软件包集成到ASP.NET Core中,使开发人员受益于ASP.NET Core已解决的日志,配置,依赖项注入,身份验证,受权等常见的交叉问题。如今,ASP.NET生态系统中的流行库(例如,实体框架核心(ORM)Serilog(日志记录库)Identity Server等)与gRPC无缝协做。框架

在客户端,该Grpc.Net.Client软件包创建在HttpClient做为.NET Core一部分提供的熟悉的API的基础上。与服务器同样,gRPC客户端也从基于的软件包HttpClient的生态系统中 受益不浅。 如今能够在gRPC客户端中使用现有的程序包,例如PollyHttpClientFactory(管理HTTPClient生命周期)ide

image

下图列出了gRPC的全部新.NET软件包的详尽列表,以及它们与现有软件包的关系。微服务

grpc-dotnet软件包

Visual Studio 2019 对protobuf文件的语言语法提供了支持,并在保存protobuf文件时自动生成gRPC服务器/客户端代码,而无需因为设计时构建而须要彻底从新编译项目。性能

gRpc 这么好用如何入门呢 ,微软的文档给咱们准备了很详细,具体参见: https://docs.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-3.0 设计

前面咱们提到了gRpc 取代WCF成为 .NET的一等公民,咱们必定很怀念WCF那种利用代码定义服务锲约的方式,你必定会记得还有一个protobuf 开源实现protobuf-net: https://github.com/protobuf-net , 我之前在腾讯IT 使用WCF + Protobuf 构建微服务的系统,用的也是protobuf-net 这个库,而不是用WCF自带的二进制序列化,得到了更高的负载处理能力。protobuf-net.Grpc 使用本机Grpc.CoreAPI或彻底托管的Grpc.Net.Client/ Grpc.AspNetCore.ServerAPI 在gRPC上添加对服务的代码优先支持。

 

image

.NET 团队还准备了一个电子书《适用于 WCF 开发人员的 ASP.NET Core gRPC》 https://dotnet.microsoft.com/learn/aspnet/architecture#grpc-for-wcf-devs-ebook-swim 对应的代码仓库:https://github.com/dotnet-architecture/grpc-for-wcf-developers

gRPC for WCF Developers

 

微软经过https://dapr.io/ 在尝试尝试整合service fabric, functions 和actors. 十分轻量, 能够运行在k8s上,单机上,iot设备上,dapr仍是一种新的编程模式,经过sidecar把微服务须要的功能经过http/grpc接进来,也能够和istio一块儿用的,也能够单独用。

参考文档

 

 

中国 .NET 开发者峰会

2019年11月9日 09:00-18:00

中国 上海

门票优惠

10月20日前购票可享受早鸟票100元优惠,只需199,限量300张,先到先得;超级早鸟票及社区特价票须要审核资料;购买团体票(大于10张)享受整单8折优惠,请经过邮箱联系主办方 dotnet@dotnetconf.cn

https://www.huodongxing.com/event/4514005355700

相关文章
相关标签/搜索