grpc asp.net core 集成时一些配置的说明
一 什么是grpc
google出了一款分布式通讯框架:grpc。我想这也不是新的东西了,在13年的一个项目中,用在了数据层和业务端之间的通讯上,当时并没有觉得怎么样,因为wcf很轻松的也可以可以实现哪些功能。但是想在想一想,确实在某些场合,grpc比wcf要更好一点。第一就是比wcf要轻量级的多,第二,跨平台,他出了一款协议Protocol Buffers,来定义接口,然后使用工具去生成不同 的语言代码。而wcf我们也知道,跨平台使用soap协议,基于http,坏处就是慢。而基于tcp或者命名管道,又不跨平台。所以grpc非常适合某些特殊的场景中使用。尤其是他的消息交换是json,比wcf的xml轻量级很多。
二 配置说明
vs2017简单的安装几个nuget包:
为项目添加proto文件,查看工程文件
<ItemGroup>
<Protobuf Include="proto\order.proto"
CompileOutputs="false" />
</ItemGroup>
CompileOutputs:这个配置属性意思就是不要编译进程序集
<ItemGroup>
<Protobuf Include="**/*.proto" OutputDir="%(RelativePath)" CompileOutputs="false" />
</ItemGroup>
OutputDir :这个属性意思就很明显了,输出目录
<ItemGroup>
<Protobuf Include="**/*.proto" OutputDir="%(RelativePath)"
CompileOutputs="false" GrpcServices="None" />
<Protobuf Update="**/hello/*.proto;**/bye/*.proto" GrpcServices="Both" />
</ItemGroup>
<Protobuf Update="**/hello/*.proto;**/bye/*.proto" GrpcServices="Both" /> 告诉插件只有这个节点配置的proto才进行更新,这是针对大一点的项目,不想让它生成整个项目的proto
GrpcServices是指生成客户端,还是服务端,还是两部分都生成。
<ItemGroup>
<Protobuf Include="**/*.proto" OutputDir="%(RelativeDir)"
CompileOutputs="false" GrpcServices="None" />
</ItemGroup>
GrpcServices="None" 只生成message不生成services
<ItemGroup>
<Protobuf Include="../**/*.proto" ProtoRoot=".."
OutputDir="%(RelativeDir)" CompileOutputs="false" />
</ItemGroup>
ProtoRoot 指定生成的代码导出的地方。
grpc asp.net core 集成时一些配置的说明的更多相关文章
- Asp.Net Core 集成 Hangfire 配置使用 Redis 存储
Hangfire 官方支持 MSSQL 与 Redis(Hangfire.Pro.Redis) 两种 ,由于我的数据库是 MYSQL ,粗略查询了一下文档,现在对 .NET Core 支持的并不够好, ...
- ABP官方文档翻译 6.2.1 ASP.NET Core集成
ASP.NET Core 介绍 迁移到ASP.NET Core? 启动模板 配置 启动类 模块配置 控制器 应用服务作为控制器 过滤器 授权过滤器 审计Action过滤器 校验过滤器 工作单元Acti ...
- [Abp 源码分析]十七、ASP.NET Core 集成
0. 简介 整个 Abp 框架最为核心的除了 Abp 库之外,其次就是 Abp.AspNetCore 库了.虽然 Abp 本身是可以用于控制台程序的,不过那样的话 Abp 就基本没什么用,还是需要集合 ...
- asp.net core集成MongoDB
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言及MongoDB的介绍 最近在整合自己的框架,顺便把MongoDBD的最简单CRUD重构一下作为组件化集成到asp.net ...
- asp.net core集成CAP(分布式事务总线)
一.前言 感谢杨晓东大佬为社区贡献的CAP开源项目,传送门在此:.NET Core 事件总线,分布式事务解决方案:CAP 以及 如何在你的项目中集成 CAP[手把手视频教程],之前也在工作中遇到分布式 ...
- asp.net core 集成JWT(一)
[什么是JWT] JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案. JWT的官网地址:https://jwt.io/ 通俗地来讲,JWT是能代表用户身份的令牌,可以使用JWT ...
- asp.net core 集成JWT(二)token的强制失效,基于策略模式细化api权限
[前言] 上一篇我们介绍了什么是JWT,以及如何在asp.net core api项目中集成JWT权限认证.传送门:https://www.cnblogs.com/7tiny/p/11012035.h ...
- asp.net core 集成 log4net 日志框架
asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...
- 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之三 —— 配置
==== 目录 ==== 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— ...
随机推荐
- iOS 点击注释图标 弹出对应解释
需求:如题目 接上一篇的开发内容 效果图: 这种情况存在tableView 的一个cell中. 要点 1, 弹出的对应解释 要在可视区域,并且小尖角 要指着 图片 2, 文本不能过高 有极大高度 ...
- SVN 过滤文件
SVN新手最容易犯的一个错误: 就是把所有文件一股脑地全提交上去了. 这样很不好,因为这当中包含很多编译器自动生成的文件,还有中间文件. 这些文件可能每次编译都会不同,所以编译一次就冲突一次. 很显然 ...
- 更改计算机名称,影响TFS之前映射的工作区 使用。
今天把自己电脑的计算机名称改了,打开vs2012的时候,就提示以下的错误: ---------------------------Microsoft Visual Studio------------ ...
- Go Interface概念
简单地说 Interface是一组Method的组合,可以通过Interface来定义对象的一组行为.如果某个对象实现了某个接口的所有方法,就表示它实现了该借口,无需显式地在该类型上添加接口说明.In ...
- qq在线客服代码
http://wpa.qq.com/msgrd?v=3&uin=1456262869&site=www.cactussoft.cn&menu=yes
- mongodb的使用(入门)
1.登录mongodb ./bin/mongo 2.查看所有数据库 show dbs ##默认有admin 和 local两个库 3.创建数据库 use test #创建数据库后,如果不写入数据 ...
- Python中的exec、eval的区别
通过exec可以执行动态Python代码,类似Javascript的eval功能: 而Python中的eval函数可以计算Python表达式,并返回结果: (exec不返回结果,print(eval( ...
- nova conductor
nova conductor是一个RPC 服务,所有支持的API都在 nova.conductor.rpcapi.ConductorAPI 它是stateless,可以水平扩展. 优点: 安全: 如果 ...
- Ceilometer 数据库比较
Ceilometer和其他OpenStack项目相比,部署中比较不同的是Ceilometer可以选用多种不同的后台数据库来保存测量值和警告器. 目前Ceilometer支持的后台数据库及及其相应的配置 ...
- audiojs 音频插件使用教程
audiojs 音频插件使用教程 github地址 https://kolber.github.io/audiojs/ 依赖文件 <script src="https://cdn.bo ...