新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

构建你的第一个gRPC服务(part 1)

发布日:2022-04-06 14:12       阅读数:

构建你的第一个gRPC服务(part 1)
如果你是一个新手,你一定被创建一个gRPC服务的复杂流程折磨过。 没错,protoc编译器是很强大, 有很多插件可以使用并通过创建服务器端或者客户端代码框架帮助你创建一个gRPC服务。但是,这整个过程很少有工具可以帮助你自动做到,你需要花费很多时间去学习和整理如何使用protoc来创建你的项目代码结构,然后你才能开始实现你的业务逻辑。
 
今天,我来介绍一个可以帮助你通过可视化工具快速完成你的服务创建的工具skemaloop。
 
How gRPC works
在正式开始之前, 我来先简单介绍一下gRPC的工作原理。详细信息你可以在网上找到很多相关的文档和新手指南。

gRPC是通过接口定义语言(Interface Definition Language)IDL来定义服务器端和客户端的协议(Schema Contract),并且通过IDL来创建服务端框架代码、客户端框架代码和桩代码stub来完成服务器端和客户端的RPC调用。桩代码(stub)可以用来完成通信的序列化和反序列化操作,框架代码实现主调和被调的数据封装和业务逻辑封装。
 
为了创建一个gRPC服务,需要完成以下几个步骤。
 
创建协议,通过创建protobuf文件,并定义好接口通信的消息定义和RPC接口定义。
生成客户端和服务器端的框架代码和桩代码。
在客户端和服务器端框架代码内实现你的业务逻辑。
Create Schema
创建协议是完成你的第一个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服务的。


编辑:航网科技   来源:腾讯云

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部