Rust编程语言结合gRPC构建高效服务器教程
创始人
2025-01-14 11:30:54
0

使用Rust构建gRPC服务器

照片由FlorianKrumm在Unsplash上拍摄

一旦我了解了gRPC和Thrift,就很难再回去使用更过渡的基于JSON的RESTAPI或SOAPAPI。

两个著名的RPC框架gRPC和Thrift有很多相似之处。
前者来自Google,后者来自Facebook。
它们都易于使用,对多种编程语言都有良好的支持,并且都是高性能的。

最有价值的功能是多语言代码生成和服务器端反射。
这些使得API本质上是类型安全的。
服务器端反射可以更轻松地探索API的架构定义,而无需阅读和理解实现。

ApacheThrift历来是一个流行的选择。
然而,近年来,由于缺乏Facebook的持续支持以及fbthrift的分叉,它逐渐失去了人气。

同时,gRPC已经赶上了越来越多的功能,并拥有更健康的生态系统。

gRPC、fbThrift和ApacheThrift之间的GitHub明星历史记录。
https://star-history.com

截至目前,没有充分的理由考虑Thrift,除非您的应用程序以某种方式隶属于Facebook。

GraphQL是Facebook发起的另一个框架。
它与上面的两个RPC框架有很多相似之处。

移动API开发的最大痛点之一是一些用户从不升级他们的应用程序。
因为我们想要保持向后兼容性,所以我们要么必须保留API中旧的未使用字段,要么创建API的多个版本。
GraphQL的一个动机就是解决这个问题。
它被设计为一种“查询语言”,允许客户端指定其需要的数据字段。
这使得处理向后兼容性变得更容易。

GraphQL在开发移动API以及面向公众的API(例如GitHub)方面具有巨大价值。
因为,在这两种情况下,我们都无法轻易控制客户的行为。

但是,如果我们正在为Web前端构建API或为内部后端服务构建API,那么选择GraphQL而不是gRPC几乎没有什么好处。

以上是迄今为止网络框架的一个小概述。
除了网络之外,我们还需要决定应用服务器的语言。

根据StackOverflow调查:“六年来,Rust一直是最流行的语言。
”尽管学习曲线相对陡峭,但其类型安全性、优雅的内存管理、广泛的社区支持和性能使其成为后端服务开发中非常有吸引力和有前途的编程语言。

Rust是最流行的语言。
2021年Stackoverflow调查

我们也开始看到Rust在业界得到越来越广泛的采用:Facebook、Dropbox、Yelp、AWS、Google等。
很明显,Rust将继续发展并在这里留下来。

这就是我们今天教程中要讨论的内容——在Rust中使用gRPC构建小型服务器。

使用以下命令安装Rust:

如果您之前安装过Rust,我们可以通过以下方式更新它:

让我们仔细检查rustc(已安装的版本)Rust编译器)和cargo(Rust包管理器):

有关安装的更多信息,请参阅https://www.rust-lang.org/tools/install。

运行以下命令来创建一个新的“HelloWorld”项目:

让我们编译并运行该程序:

这显示了到目前为止我们的文件结构:

gRPC使用协议缓冲区来序列化和反序列化数据。
.proto让我们在一个文件中定义服务器API。

我们定义一个书店服务只有一种方法:提供图书ID并返回有关该图书的一些详细信息。

我们将使用tonic来创建gRPC服务。
将以下依赖项添加到Cargo.toml文件中:

要从bookstore.proto生成Rust代码,我们在crate的build.rs构建中使用tonic-build脚本。

将以下内容添加到build.rs文件中:

特别要注意的一件事是,我们添加了.out_dir("./src")以便更改默认值输出目录更改为此src目录,以便我们可以更轻松地查看本文中生成的文件。

在我们准备编译之前还有一件事。
tonic-build依赖ProtocolBuffers编译器将.proto文件解析为可以转换为Rust的表示形式。
让我们安装protobuf:

并仔细检查protobuf编译器是否安装正确:

准备编译:

有了这个,我们应该src/bookstore.rs生成一个文件。
此时,我们的文件结构应如下所示:

最后,是时候将服务组合在一起了。
将main.rs替换为以下内容:

正如我们所见,为了简单起见,我们实际上并没有为书籍设置数据库。
在这个端点中,我们只是返回一本假书。

运行服务器的时间:

太棒了,我们已经在Rust中启动并运行了gRPC服务器!

正如一开始提到的,gRPC最初给我留下了深刻的印象是因为它能够进行服务器反射。
不仅在业务开发时方便,也让与前端工程师的沟通更加轻松。
因此,在不解释如何为Rust服务器添加它的情况下结束本教程是不完整的。

将以下内容添加到依赖项:

更新build.rs。
需要更改的行标有//Addthis注释。

最后,将main.rs更新为以下内容。

可以使用gRPCServer的GUI客户端有很多,比如Postman、Kreya、bloomrpc、grpcox等。
为了简单起见,我们将使用命令行工具grpc_cli。

安装:

并测试我们的第一个gRPC端点:

看起来可行!我的朋友们,这就是我们在Rust中构建gRPC服务器的方式。

今天就这样。
感谢您的阅读并祝您编码愉快!与往常一样,源代码可在GitHub上获取。

有游侠众玩RUST吗,想自己开个服务器

要启动Rust服务器,您首先需要确保Minecraft_Server版本与您的游戏版本匹配。
例如,服务器的版本1.8需要对应游戏的版本1.8。
您需要将此服务器文件放置在“Minecraft”文件夹中,并且该文件夹需要以英文命名。
启动Minecraft_Server后,它会自动创建一个“server.properties”文件。
用记事本打开文件后,找到这两个设置:spawn-monsters=true和online-mode=false,分别更改为:spawn-monsters=false和online-mode=true。
编辑完成后保存。
接下来,再次运行Minecraft_Server.exe,等待出现“Done!Forhelp,type'help'or'?'”提示,说明服务器已经搭建完毕。
最后,您需要告诉您的朋友您的IP地址,以便他们可以连接到您的服务器。
不要忘记,如果您使用路由器,您需要先设置您的公共IP,以便您的朋友可以通过互联网访问您的服务器。

末忆铁锈盒子怎么用

MoYiRustBox是一款专门用于存储和管理Rust游戏(Rust)的服务器文件和玩家数据的工具。
以下是MoYiRustBox的详细使用步骤:1.下载安装:首先,您需要从官方网站或授权渠道下载MoYiRustBox的安装包。
安装过程中,请按照界面提示,选择合适的安装路径并完成安装。
2.创建或导入服务器:打开MoYiRust框后,您可以选择是创建新的Rust服务器还是导入现有的服务器文件。
创建新服务器时,需要设置一些基本参数,例如:B.服务器名称、地图、最大玩家数量等。
3.配置服务器:服务器创建或导入后,可以对服务器进行详细配置。
这包括更改游戏规则、调整难度、设置管理员权限等。
MoYiRustBox提供丰富的选项和灵活的定制,让您根据自己的喜好和需求创建独特的Rust服务器。
4.管理玩家数据:使用MoYiRustBox您可以轻松管理服务器上的玩家数据。
这包括检查玩家的在线状态、搜索玩家库存、更改玩家权限等。
此外,您可以使用框中提供的工具来禁止或惩罚违规玩家。
5.更新和维护:为了保证服务器的稳定性和安全性,您需要定期更新Rust游戏文件以及MoYiRust盒子本身。
该盒子通常提供一键更新功能,可以让您轻松完成更新过程。
此外,您需要定期备份服务器以防止数据丢失。
总的来说,MoYiRustBox为构建和管理Rust服务器提供了强大的支持和丰富的功能。
无论您是初学者还是经验丰富的玩家,掌握盒子的使用都可以更好地享受Rust游戏。

相关内容

热门资讯

阿里巴巴域名续费攻略:操作指南... 阿里巴巴域名如何续费阿里巴巴域名如何续费的阿里巴巴年费在哪里缴纳?阿里巴巴的年费是通过续费接口支付的...
电子发票邮箱发送失败原因及处理... 电子发票服务平台无法用邮箱交付发票?尊敬的先生或女士,我很高兴回答您的问题:为什么带有增值税的电子发...
联想电脑硬盘保修期限详解:笔记... 联想电脑硬盘保修期联想台式电脑保修多久⑴联想笔记本电脑硬盘损坏售后保修?需要预约。如果机器在保修期内...
vivo手机数据恢复攻略:云备... 数据备份之后怎么恢复如果您使用的是vivo手机,可以参考以下方法:1如果您指的是恢复云备份数据:您可...
V380云服务免费激活教程及电... v380如何免费开通云服务?如何在v380上免费激活云服务:1.打开网站首页。2.在产品和服务中找到...
电信机顶盒设置教程:安装与操作... 电信机顶盒时间服务器地址192.168.1.0x。机顶盒的IP地址均为默认,电信机顶盒的时间服务器地...
云服务器年费用解析:不同配置与... 云服务器费用多少钱一年?云服务器成本1.一台云服务器每年的成本在5万左右。云服务器(弹性计算服务,E...
2021阿里云服务器价格解析及... 2021阿里云服务器价格表(CPU/内存/磁盘/带宽...
阿里云ECS经济型e实例评测:... 阿里云服务器ECS经济型e实例性能测评_CPU内存/网络/存储全方位...
2024年云服务器性价比盘点:... 华为云服务器费用是多少?根据所选配置的不同,华为云服务器每年的成本在几百元到几千元之间。您可以根据自...