gRPC

一个高性能、开源的通用RPC框架

gRPC可以通过protobuf来定义接口,从而可以有更加严格的接口约束条件。
通过protobuf可以将数据序列化为二进制编码,这会大幅减少需要传输的数据量,从而大幅提高性能。
gRPC可以方便地支持流式通信

使用场景

需要对接口进行严格约束的情况

对于性能有更高的要求时

通常我们不会去单独使用gRPC,而是将gRPC作为一个部件进行使用,这是因为在生产环境,我们面对大并发的情况下,需要使用分布式系统来去处理,而gRPC并没有提供分布式系统相关的一些必要组件。而且,真正的线上服务还需要提供包括负载均衡,限流熔断,监控报警,服务注册和发现等等必要的组件

逻辑:

解决方案包含三个项目:https://yumu.lanzoui.com/iPSAtrur9ha
1.Demo项目(类库);
(1)Nuget:
Grpc
Google.Protobuf
Grpc.Tools
(2)添加后缀.proto原始配置文件,并编写内容
(3)在packages 的上层目录cmd输入命令转化为CSharp的.cs类,并添加进工程.

2.Client项目(控制台);
(1)Nuget:
Grpc
Google.Protobuf
(2)添加引用Demo项目;
(3)using Grpc.Core;using GRPCDemo;编写链接调用内部方法并传参,获取返回对象;

3.Server项目(控制台);
(1)Nuget:
Grpc
Google.Protobuf
(2)添加引用Demo项目;
(3)using Grpc.Core;using GRPCDemo;创建类继承gRPC.gRPCBase并实现方法;
(4)Main中创建server对象并启动.

总结:

需要在公共的类库中创建grpc专属的.proto原始文件,并使用cmd命令转化为CSharp适用的类,client和server端口需要引用刚生成的类;
然后在服务端继承类实现方法并启用,客户端创建对象并调用.


参考链接:

https://www.jianshu.com/p/9c947d98e192

https://www.cnblogs.com/linezero/p/grpc.html

相关推荐

网友评论(0)