【半译】两个gRPC的C#库:grpc-dotnet vs Grpc.Core

grpc-dotnet 是在2019年随着 .NET Core 3.0 一起发布的一个gPRC官方库。在ASP.NET Core gRPC项目模板里面就使用了这个库。

 

.NET Core 3.0之前难道不可以使用gRPC吗?

目前,gRPC 在.NET上有两种官方实现:

  • Grpc.Core:这个是原来的gRPC C#库,它基于原生gPRC(C-Core)核心库实现。

  • grpc-dotnet:这是新的库,完全使用C#编写实现,没有原生依赖,基于.NET Core 3.0。 

grpc-dotnet并没有替代Grpc.Core,它们并行共存,它们在功能、集成力、支持的平台、成熟度和性能方面各有优势。而且这两种实现使用了相同的API来调用和处理RPC,从而可以避免单库锁定,并允许用户选择满足其需求的最佳实现。

 

grpc-dotnet

与原来基于C-Core实现的Grpc.Core不同,grpc-dotnet使用了.NET Core BCL核心库里面现有的网络原始类型,请看比较图:

在服务器端Grpc.ASPNETCore.Server库集成到了ASP.NET Core中,使开发人员能够从ASP.NET Core现有的日志、配置、依赖注入、身份验证、授权等常见横切关注点的生态系统中获益。ASP.NET生态系统中的流行库,如Entity Framework CoreORM)、Serilog(日志库)和Identity Server等,均可以与gRPC无缝协作。

 

在客户端Grpc.Net.Client库基于大家熟悉的HttpClient API构建,该API.Net Core的一部分。与服务器端一样,gRPC客户端可以从构建在HttpClient上的软件生态系统中受益,例如Polly(弹性和故障处理库)和HttpClientFactory(管理HTTPClient生命周期)等库就可以在gRPC客户端上使用。

 

grpc-dotnet Grpc.Core关系图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Java基础]String对象的特点(易错点)

String对象的特点: 1.通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同。 2.以""方式给出的字符串,只要字符串相同(顺序和大小写),无论在程序代码中出现几次&#xff0…

数据结构与算法--解决问题的方法- 二叉树的的镜像

解决问题的思路 工作中遇到的问题可能用到的数据结构由很多,并且各种数据结构都不简单,我们不可能光凭借想象就能得到问题的解法,因此画图是在家具问题过程中用来帮助自己分析,推理的常用手段。很多问题比较抽象,不容…

使用dnSpy调试asp.net core源码

环境:window 10vs2019 16.5.1dnspy v6.1.4.netcore3.1参考:.Net反编译技术详解及4个反编译工具介绍一、关于dnSpydnSpy是近几年的新秀,功能远比ILSpy强大,甩.net Reflector几条街,被汉化、破解、逆向方面的人才奉为神器…

数据结构与算法--解决问题的方法-顺时针打印矩阵

顺时针打印矩阵 题目输入一个矩阵,按照从外向里顺时针的顺序依次打印每一个数字。例如下案例: 如上图矩阵,顺时针打印:1,2,3,4,8,12,16,15,14,13,9,5,6,7,1,10 以上问题看起来比较复杂,但是又没有涉及到复杂的数据结…

.NET与鲲鹏共展翅,昇腾九万里(二)

在上一篇文章 .NET与鲲鹏共展翅,昇腾九万里(一)中,我们通过在鲲鹏架构的Euler系统上跑Docker的方式把dotnet core 跑起来了,有读者反馈说“还是走docker喽,你这个标题应该改成鲲鹏和docker两条鲸鱼的故事”…

[Java基础]final和static修饰符

final: final修饰局部变量时: static: static访问特点:

优化委托的 DynamicInvoke

优化委托的 DynamicInvokeIntro委托方法里有一个 DynamicInvoke 的方法,可以在不清楚委托实际类型的情况下执行委托方法,但是用 DynamicInvoke 去执行的话会比直接用 Invoke 的方法会慢上很多,差了两个数量级,所以在知道委托类型的…

数据结构与算法-- 广度优先打印二叉树

广度优先打印二叉树 题目:从上往下打印出二叉树的每一个节点,同一层节点按照从左到右顺序打印,例如下图中二叉树,依次打印出是8,6,10,5,7,9,11 如上题中二叉树的节点定义我们用之前文章 二叉树实现原理中定义的节点结构。此处提议…

实现一个基于动态代理的 AOP

实现一个基于动态代理的 AOPIntro上次看基于动态代理的 AOP 框架实现,立了一个 Flag, 自己写一个简单的 AOP 实现示例,今天过来填坑了目前的实现是基于 Emit 来做的,后面有时间再写一个基于 Roslyn 来实现的示例效果演示演示代码&…

数据结构与算法-- 二叉树后续遍历序列校验

二叉树后续遍历序列校验 题目:输入一个整数数组,判断改数组是否是某个二叉搜索树的后续遍历结果,如果是返回true否则false,假设输入数组的任意两个数字不相同。 例如输入{5,7,6,9,11,10,8}则返回true,因为这个整数序列…

程序员过关斩将-- 工作好多年可能还未真正了解接口和抽象类

点击上方“蓝字”关注我们菜菜哥,我偷偷出去面试了,然后面试官让我回来等消息那你可能挂了呀,有什么问题没回答上来吗确实有一个问题回答的不太好哎,就是接口和抽象类这个确实是面试官比较爱问的题目之一那能不能说说接口和抽象类…

数据结构与索引-- mysql InnoDB存储引擎索引

索引与算法 索引是我们在应用开发过程中程序数据可开发的一个重要助力。也是一个重要的研究方向,索引太多,应用的性能可能受到影响,如果索引太少,对查询性能又会有制约。我们需要找到一个合适的平衡点,这个对性能至关…

扫盲消息队列 | 消息中间件 | Kafka

先吐槽我真的写技术文章写到怀疑人生,我翻看历史发文记录,只要我一本正经的写的技术文章,都没人看,但是!一发闲扯淡的内容,阅读量肯定是技术文的好几倍(读者爸爸们别这么搞嘛)这说明…

数据结构与索引-- B+树索引

B树索引 上一节中我们讨论的都是B树的数据结构的由来以及他的一些操作,B树索引在本质就是B树在数据库中的一个实现,但是B索引在数据库中有一个特点就是他的高扇出性,因此在数据库中,B树的高度一般是2~3层,也就是对于查…