grpc通讯图

GRPC顾名思义也是一类RPC协议,其由google推出,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统,其基于HTTP/2 ,多种编程语言支持,采用ProtoBuf 定义的IDL,多种技术手段使其社区目前异常活跃。

微服务的通信基础

大家都知道,按照微服务拆分后,不同的微服务间通讯就成为了了选项架构必须考虑的地方,而基于.net core平台的微服务更是处于比较尴尬的地步,由于没有官方的支持,所以对各种RPC的应用和集成也是一个繁重的工作,并且涉及到通讯,大部分开发工程师并不精于此道,大都避让三舍。

曙光

当然google早就推出了C#版的grpc类库,微软的grpc.net团队称其为“官方“,这个你懂得,最好用无右微软。

微软grpc团队的名称是gRPC for dotnet,github地址:https:XX github.com/grpc/grpc-dotnet,预计会和.net core 3.0正式版一块推出,如果等不及,可以下载预览版看看。

微软计划实现一个完全托管的gRPC for .NET版本,该版本将构建在ASP.NET Core HTTP / 2服务器之上。以下是一些主要功能:

  • API与现有的gRPC C#实现兼容(您现有的服务实现应该只需最少的调整)

  • 与其他gRPC实现完全互操作(在其他语言和其他平台中)

  • 与ASP.NET Core生态系统的其余部分良好集成

  • 高性能(我们计划利用ASP.NET Core和.NET平台本身的一些前沿性能特性)

  • 我们计划提供一个托管的.NET Core客户端(可能首先有限的功能集)

致力于在ASP.NET Core 3.0时间框架内提供托管服务器体验Microsoft.AspNetCore.Server功能。将努力提供3.0中的mananged客户体验。

有关gRPC C#native(当前正式版)和新的完全托管的ASP.NET核心gRPC的计划包布局,请参阅doc / packages.md。

请注意,计划将两种实现(gRPC C#本机和完全管理的.NET Core for grc)共存,目前没有计划用一种实现来替换另一种。

类库如图

理念核心

团队设想设计托管客户端和托管服务器。由于gRPC服务通常充当客户端和服务器,因此我们希望尽可能使两个组件无缝结合。除了服务器和客户端软件包之外,元数据包还将依赖于工具支持(来自Grpc.Tools的代码gen和来自Microsoft.Extensions.ApiDescription.Design的ServiceReference支持)和默认消息协议(Google.Protobuf)。

团队希望将它们与本机客户端和服务器区分开来,因此包名称将以Grpc.AspNetCore / Grpc.NetCore为前缀。我们不希望大多数用户直接依赖这些包,因此我们将使用由三部分组成的名称。

团队致力于在ASP.NET Core 3.0时间框架内提供托管服务器体验Microsoft.AspNetCore.Server功能。将努力提供3.0中的mananged客户体验。

结语

微软真是令人激动!基于.net 开发的程序员应该能享受这一红利了

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐