zoukankan      html  css  js  c++  java
  • GRpc添加客户端的五种方式

    随着微服务的发展,相信越来越多的.net人员也开始接触GRpc这门技术,大家生成GRpc客户端的方式也各不相同,今天给大家介绍一下依据Proto文件生成Rpc客户端的五种方式

    前提:需要安装4个Nuget包
    Google.Protobuf、Grpc、GRpc.Net.ClientFactory、GRpc.Tools
    VS安装命令如下
    Install-Package Google.Protobuf
    Install-Package Grpc
    Install-Package GRpc.Net.ClientFactory
    Install-Package GRpc.Tools

    准备工作

    首先我们新建一个简单的.net core3.1类库 命名为:GRpc.Proto 然后添加HelloWord.Proto 添加一个简单的协议

    syntax = "proto3";
    import "google/protobuf/timestamp.proto";
    
    option csharp_namespace = "HelloWordDemo";
    
    package HelloWord;
    
    service HelloWord{
       rpc SayHelloWord(SayHelloWordRequest) returns (SayHelloWordResponse);
    }
    
    message SayHelloWordRequest{
    	string message=1;//发送消息
    }
    
    message SayHelloWordResponse{
       string message=2;//返回消息
    }
    

    然后给该类库安装上述的安装包(当前类库只是协议,不需要安装GRpc.Net.ClientFactory)
    截止到现在,我们的准备工作已经做好了,接下来开始进入正题

    通过添加服务引用

    新增一个名为GRpcClient的控制台,安装以上介绍的四个类库
    项目右键点击添加-->服务引用
    在这里插入图片描述
    选择浏览找到我们刚刚添加的proto文件 将选择要生成的类的类型选"客户端"
    在这里插入图片描述
    点击确定 第一种就完成了

    通过Nuget包添加引用

    这种在公司项目中比较推荐使用的(前提是已经有了私有nuget库)
    找到我们刚刚新增的GRpc.Proto项目,右键属性,找到打包,填写相对应的信息,一定要勾选在构建会生成Nuget包
    在这里插入图片描述
    重新生成之后就可以在项目debug目录下看到对应的nuget包了,推送到私有的nuget库就可以了

    直接通过Proto文件引用

    在项目下新建一个文件Until,将上面的HelloWord.Proto文件放在新建的文件下,右键点击HelloWord.Proto的属性
    在这里插入图片描述
    生成操作选择ProtoBuf conpiler
    会出现一个新的属性:如下
    在这里插入图片描述
    此时我们选择Client only
    客户端就生成好了

    通过url添加引用

    项目右键点击添加-->服务引用
    在这里插入图片描述
    选择Url(一定要公网可以访问,如果是在github上的一定要有如下的操作)
    在这里插入图片描述
    点击Raw
    在这里插入图片描述
    使用这个路径 才可以成功

    通过地址生成Proto文件引用

    这种方式其实和上面一种方式的用法差不多,但是感觉还是需要写一些。万一大家哪天需要用到呢
    这种方法是通过donnet命令和proto文件地址生成proto文件
    这里需要大家配置一个环境变量
    在这里插入图片描述

    命令如下
    在PwwerShell获取VS控制台执行以下命令

    dotnet grpc add-url proto文件的url(公网可访问) -o 文件生成的地址

    如果大家有其他的生成需求 可点击 跳转到具体页面查看详细介绍

    这里面的需要的tools文件我已上传到百度网盘,链接会在文末给出,如果大家需要,自行下载

    tools文件下载地址:
    链接:https://pan.baidu.com/s/1Vc7FW1w3dX_ZNsbUbh62vQ
    提取码ari6

    如有哪里讲得不是很明白或是有错误,欢迎指正
    如您喜欢的话不妨点个赞收藏一下吧

  • 相关阅读:
    Linux学习(三十一)系统日志
    Linux学习(三十)rsync的使用
    php检测文字编码的方法
    Phpexcel使用
    高并发秒杀解决方案(转载)
    通过CSS选择器查找元素
    通过PartiaLinkText查找元素
    通过LinkText查找元素
    通过TagName查找元素
    通过ClassNmae查找元素
  • 原文地址:https://www.cnblogs.com/ancold/p/12965813.html
Copyright © 2011-2022 走看看