如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (下)

上文给大家详细介绍了在 Apinto 上实现 HTTP 与 gRPC 的协议转换的基本内容,本篇我们将继续讲解如何在 Apinto-Dashboard 中进行配置。
配置 Apinto
Apinto 上我们提供了可视化界面工具 Apinto-Dashboard,以降低初学者的使用成本,以下操作均在 Apinto-Dashboard 中进行配置。
1. 在全局插件中新建 http_to_grpc 插件

2. 创建 gRPC 服务

在这里,我们配置 gRPC服务的相关信息,我们可以配置多个静态负载地址,这里我们填写了 127.0.0.1:9001。
3.创建 http 路由,绑定 grpc_demo 上游服务

4. 在路由中绑定 http_to_grpc 插件
由于 gRPC 服务端示例中,我们开启了gRPC反射,因此,在配置插件时,开启反射按钮即可

注:
当服务名称不填时,则默认使用
HTTP请求路径的第一个/和第二个/之间的值作为服务名;当方法名称不填时,则默认使用
HTTP请求路径的第二个 / 和第三个 / 之间的值作为服务名;
·即,若HTTP请求路径上/Service.Hello/Hello,则此时服务名称为Service.Hello,方法名称为Hello。
关于 Protobuf 编码器
若 gRPC 未开启反射,我们需要先新建一个Protobuf 编码器,绑定 http_to_grpc 插件时,绑定对应的编码器 ID 即可,详细步骤如下:
1. 创建 Protobuf 编码器

2. 在路由中绑定 http_to_grpc 插件
填写完后提交即可。
验证协议转换请求
1. 启动 gRPC 服务器

2.请求 Service.Hello 服务的 Hello 方法
在上文中,我们定义了 Hello 方法的功能:
将
HelloRequest中的name字段通过HelloResponse的msg字段封装成hello,%s的结果返回;将请求的 Header 作为 gRPC 响应的 Trailer 头部返回。
调用结果如下:


欢迎到 GitHub 体验 :https://github.com/eolinker/apinto
写在最后
目前 Apinto 及其周边项目已经开源,我们希望通过 Apinto 强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展 Apinto 的插件,以满足不同的业务市场需求。
Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的 Traffic Middleware。
这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。 每一个贡献都是有意义的,包括但不限于:
- 查找 bugs,取得性能上的提升
- 帮助完善文档,提供用户操作体验
- 提交你们的 issue,让我们知道您的奇思妙想
- 参与自定义插件的开发,丰富 apinto 的能力
欢迎各位开源爱好者参与到 Apinto 项目中,和我们一起为开源事业贡献自己的力量!
我们希望得到您的关注~
Github : https://github.com/eolinker/apinto
如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (下)的更多相关文章
- grpc Unary模式下客户端创建insecure channel的主要流程
(原创)C/C/1.25.0-dev grpc-c/8.0.0, 使用的例子是自带的例子GreeterClient grpc Unary模式下客户端创建insecure channel的主要流程 gr ...
- 如何在 C# 项目中链接一个文件夹下的所有文件
在 C# 项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码.常见的比如链接 AssemblyInfo.cs 文件,这样我们就可以在项目中使用这个文件中的版本号等信息.但是如果我们想要链 ...
- 一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)
述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- 【gRPC】C++下使用CMakeLists快速构建项目
在gRPC中,编写.proto文件(protocol buffer文件)来定义RPC服务的接口是第一步 先通过proto的代码生成器编译生成pb.h.pb.cc.grpc.pb.h.grpc.pb.c ...
- 如何在grails2.3.x中的fork模式下进行调试?-【grails】
grails2.3.x中默认情况下运行模式被设置成了fork模式,在这种模式下,大家会发现设置了断点后无法进行中断.这是由于fork模式造成的,因为在fork模式下,JVM新起了一个进程,这样调试器就 ...
- 如何在SAP云平台的Cloud Foundry环境下添加新的Service(服务)
我想在SAP云平台的Cloud Foundry环境下使用MongoDB的服务,但是我在Service Marketplace上找不到这个服务. cf marketplace返回的结果也没有. 解决方案 ...
- 如何在FL Studio中使用自动剪辑(下)
在上集中我想大家介绍了FL Stduio Automation Clip的创建.播放列表操作及包络线类型介绍,在这篇文章中我将会给大家介绍如何在播放列表中使用Automation,剪辑通道的操作及使用 ...
- [干货]kubenertes ingress负载grpc
目录 概述 搭建 生成公私钥 创建secret 创建ingress 访问 概述 一般情况下,我们的系统对外暴露HTTP/HTTPS的接口,内部使用rpc(GRPC)通讯,这时GRPC在服务之间通过se ...
- 【ASP.NET Core学习】远程过程调用 - gRPC使用
本文介绍在gRPC使用,将从下面几个方面介绍 什么是RPC 什么时候需要RPC 如何使用gRPC 什么是RPC RPC是Remote Procedure Call简称,翻译过来是远程过程调用.它是一个 ...
- .Net Core Grpc 实现通信
.Net Core 3.0已经把Grpc作为一个默认的模板引入,所以我认为每一个.Net程序员都有学习Grpc的必要,当然这不是必须的. 我在我的前一篇文章中介绍并创建了一个.Net Core 3.0 ...
随机推荐
- ADC参悟
SFDR比信噪比大15dB,怎么跟应用联系起来,分别决定了啥?
- js 基础篇--保留字
1.js把一些标识符拿出来用作自己的关键字.因此,就不能再在程序中把这些关键字用作标识符了: 1 break delete function return typeof 2 case do if sw ...
- 前端通过input 输入框实现动态添加行 , 键盘上下左右点击可同步操作中心位置
1. input 代码 ,我们项目组的input封装了,不过不影响使用 通过 @keyup 事件绑定show方法,需要将当前行的信息以及index传递,方便操作 另外要单独给这些需要操作的输入框添加c ...
- kali2020-bash: openvas-setup:未找到命令 ,解决办法
将openvas-setup命令换成 gvm-setup命令即可
- 【逆向】CVE-2017-8570漏洞分析调试技巧
前言 CVE-2017-8570是一个逻辑型漏洞,该漏洞利用复合Moniker绕过了CVE-2017-0199的更新补丁,可以在Office文档中执行任意SCT(Windows Script Comp ...
- SQL Server 解析Json(单层/多层)
一,单层Json数据取出 1.取出取出@JsonData字符串中的 __type,DocNo,OrderPriceTC,Organization_Code 字段 DECLARE @JsonData ...
- SQL之查询
1. SQL之模糊查询 例如查询姓名时,不用输入全名,仅仅输入其中的一部分 语法: select 列名 from 表名 where 列名 like 匹配串 其中 匹配串用英文的单引号括起来 四种匹配模 ...
- InnoDB和MyISAM的区别(超详细)
1.事务 InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务: ...
- jsp第7个作业
MailService package mail.service; import java.util.List; import mail.dao.DaoFactory; import mail.d ...
- jsp第4个作业(1)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...