zoukankan      html  css  js  c++  java
  • 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项目,然后再去一点一点剖析

     项目结构如下

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

    首先引用的是Grpc.AspNetCore包

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

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

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

     然后是startup文件,内容如下

    server端大概如此

    2、新建client端

    新建一个控制台应用程序

    拷贝server端的 Proto文件到client端

    然后修改csproj文件

    <ItemGroup>
      <Protobuf Include="Protosgreet.proto" GrpcServices="Client" />
    </ItemGroup>

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

    服务引用,点gRPC 

     

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

    修改Program.cs

    客户端调用

     调试运行

    先启动服务端

    启动客户端

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

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

    客户端收到返回值

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

  • 相关阅读:
    使用IDENTITY列属性和Sequence对象
    使用OFFSET-FETCH进行数据过滤
    SQL 插入语句汇总
    建立&修改视图
    Centos 7.x 搭建 Zabbix3.4
    RDS 导出Mysqlbinlog_二进制日志
    Yac
    云服务器漏洞更新
    Centos 内存释放
    Centos 安装 Htop
  • 原文地址:https://www.cnblogs.com/ares-core/p/13049133.html
Copyright © 2011-2022 走看看