如果你是一个新手,你一定被创建一个gRPC服务的复杂流程折磨过。 没错,protoc编译器是很强大, 有很多插件可以使用并通过创建服务器端或者客户端代码框架帮助你创建一个gRPC服务。但是,这整个过程很少有工具可以帮助你自动做到,你需要花费很多时间去学习和整理如何使用protoc来创建你的项目代码结构,然后你才能开始实现你的业务逻辑。
今天,我来介绍一个可以帮助你通过可视化工具快速完成你的服务创建的工具skemaloop。
在正式开始之前, 我来先简单介绍一下gRPC的工作原理。详细信息你可以在网上找到很多相关的文档和新手指南。
gRPC是通过接口定义语言(Interface Definition Language)IDL来定义服务器端和客户端的协议(Schema Contract),并且通过IDL来创建服务端框架代码、客户端框架代码和桩代码stub来完成服务器端和客户端的RPC调用。桩代码(stub)可以用来完成通信的序列化和反序列化操作,框架代码实现主调和被调的数据封装和业务逻辑封装。
为了创建一个gRPC服务,需要完成以下几个步骤。
创建协议是完成你的第一个gRPC服务的前提。在本篇文章中,我使用skemaloop这个gRPC开发者套件来完成协议的创建。
在正式开始之前,你首先需要保证你已经有一个你自己的github账户。你需要登录skemaloop主页,通过你的github登录skemaloop的SaaS平台。
在完成登陆以后,你就可以开始创建你的Schema。
在创建schema的时候,有几个关键概念需要澄清。 协议模块,即module作为管理协议的最高层级的集合,可以包含一个或多个包(package),包(package)可以包含一个或多个协议定义文件,即protobuf。在我的例子中,我使用sample_module和sample_pacakge分别做为我们协议的模块和包名称。
我在这里创建一个名称为SayHi的服务,对应一个SayHi的协议定义文件。
syntax = "proto3";
//package code generated by schemakit DO NOT EDIT.
package sample_module.sample_package;
message HelloRequest {
string msg = 1;
}
message HelloReply {
string msg = 1;
string code = 2;
}
service SayHi {
rpc SayHello (HelloRequest) returns (HelloReply);
}
在下一篇文章中,我将介绍如何使用这个协议定义文件来创建桩代码(stub)和服务端代码框架,来完成一个简单的gRPC服务的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有