12、gRPC

概念

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

怎么用.net core 实现一个grpc例子

msdn文档

https://docs.microsoft.com/en-us/aspnet/core/grpc/aspnetcore?view=aspnetcore-3.0&tabs=visual-studio

 

1、新建Sever项目

因为是演示程序,所以直接新建一个 gRPC项目,然后再去一点一点剖析

12、gRPC_第1张图片

12、gRPC_第2张图片

 

 

 

 项目结构如下

12、gRPC_第3张图片

 

没有client端的,一会儿再弄,先看一下这里都是啥

首先引用的是Grpc.AspNetCore包

然后有一个Protos文件夹,文件夹里是greet.proto文件,从概念的文章中可以知道,这是rpc接口的定义文件,可以打开来看

12、gRPC_第4张图片

编译器会根据这个文件,生成一个名字为Greeter的partial类,说白了就是.net 的语法糖帮你实现了gRPC服务端,直接拿来用就完了,但是我们还是要弄清楚他都干了啥,在这不多说了,去翻文档吧,最好还是自己去实现吧,因为这种自动生成的代码始终不受你控制,不受控制的东西始终让人没底,就像我们用在生产环境的东西,要么是大厂在用,要么是拥有开源社区

 

 service文件夹,里面是具体的server业务代码,他继承了上面根据greet.proto生成的类,然后实现服务方法,并给出返回值

12、gRPC_第5张图片

 

 

 然后是startup文件,内容如下

12、gRPC_第6张图片

 

 

 

server端大概如此

2、新建client端

新建一个控制台应用程序

 

12、gRPC_第7张图片

 

 

 

 

12、gRPC_第8张图片

 

 

 

拷贝server端的 Proto文件到client端

12、gRPC_第9张图片

 

 

 

然后修改csproj文件

12、gRPC_第10张图片

 

 

 


  

client端,引用右键,选择添加连接的服务(想起了当年的webservice)

12、gRPC_第11张图片

 

 

服务引用,点gRPC 

12、gRPC_第12张图片

 

 

 12、gRPC_第13张图片

 

 

 点确定后,就自动去生成代码去了

 

修改Program.cs

客户端调用

12、gRPC_第14张图片

 

 

 

 调试运行

先启动服务端

12、gRPC_第15张图片

 

 

启动客户端

12、gRPC_第16张图片

 

 

客户端获取到了client实例,发起请求到服务端

12、gRPC_第17张图片

 

 

服务端收到请求,业务处理完毕后返回

12、gRPC_第18张图片

 

 

客户端收到返回值

12、gRPC_第19张图片

 

 

 

简单的gRPC的.net core 实现完成,生产环境的话势必没这么简单

 

你可能感兴趣的:(12、gRPC)