使用 Rust 构建 gRPC 服务器,第1张

弗洛里安·克鲁姆 ( Florian Krumm ) 在Unsplash上拍摄的照片

一旦我了解了gRPC和Thrift,就很难再回到使用更具过渡性的基于 JSON 的 REST API 或SOAP API 了。

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

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

Apache Thrift在 历史 上一直是一个流行的选择。然而近年来,由于缺乏来自 Facebook 的持续支持,以及与fbthrift的分叉分叉,慢慢失去了人气。

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

GRPC(蓝色)与 Apache Thrift(红色)的比较。谷歌趋势

gRPC、fbThrift 和 Apache Thrift 之间的 GitHub 明星 历史 。https://star-historycom

到今天为止,除非您的应用程序以某种方式隶属于 Facebook,否则没有充分的理由考虑 Thrift。

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

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

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

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

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

基于Stack Overflow 调查:“六年来,Rust 是最受欢迎的语言。” 尽管学习曲线相对陡峭,但它的类型安全、优雅的内存管理、广泛的社区支持和性能,都使 Rust 成为一种非常有吸引力和有前途的后端服务开发编程语言。

Rust 是最受欢迎的语言。2021 年 Stackoverflow 调查

我们也开始看到 Rust 在行业中得到越来越广泛的采用:Facebook、Dropbox、Yelp、AWS、Google等。很明显,Rust 将继续增长并继续存在。

这就是我们将在今天的教程中看到的内容——在 Rust 中使用 gRPC 构建一个小型服务器。

使用以下命令安装 Rust:

如果您以前安装过 Rust,我们可以通过以下方式对其进行更新:

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

有关安装的更多信息,请查看https://wwwrust-langorg/tools/install。

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

让我们编译并运行程序:

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

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

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

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

为了从 生成 Rust 代码bookstoreproto,我们tonic-build在 crate 的buildrs构建脚本中使用。

将以下内容添加到buildrs文件中:

需要特别指出的一件事是,我们添加它out_dir(“/src”)是为了将默认输出目录更改为该src目录,以便我们可以更轻松地查看生成的文件,以达到本文的目的。

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

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

准备编译:

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

最后,是时候将服务放在一起了。替换为mainrs以下内容:

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

运行服务器的时间:

很好,我们在 Rust 中启动并运行了 gRPC 服务器!

正如开头所说,gRPC 最初给我留下了深刻的印象,因为它具有做服务器反射的能力。它不仅在服务开发过程中很方便,而且还使与前端工程师的沟通变得更加容易。因此,如果不解释如何为 Rust 服务器添加它,那么结束本教程是不完整的。

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

更新buildrs。需要更改的行用// Add this注释标记。

最后,将其更新mainrs为以下内容。

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

安装:

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

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

这就是今天的内容。感谢阅读和快乐的编码!与往常一样,源代码可在GitHub 上获得。

免费下载的只有rust破解版,但是只能玩单机,无法联机。

(下载网址:www391kcom/game/27365html)

能联机的只有正版rust,需要在steam上下载,是付费的。淘宝上有卖rust游戏的,58块。

你需要先下载一个steam平台,购买游戏后,再在steam平台上下载此游戏。

(steam下载地址:dlswbaiducom/sw-search-sp/soft/97/17517/Steam_Setup1418108121exe )

延展阅读:

《腐蚀Rust》是由Facepunch Studios公司采用Unity 3D制作的一款第一人称生存网络游戏,目前可以建设个人服务器。通过steamcmd可以获得服务端,开设正版服。建议玩家选择人少一点的服务器游玩,不然很容易被其他暴力玩家组队杀掉。但是,要记住野生的队友同样不可靠。

本作的游戏体验非常黑暗,游戏中玩家之间的利用、背叛、抢夺、杀戮很常见,可以说如果你不是和一个好基友一起进行游戏,你的整个游戏过程都将会非常艰辛,必须时刻保持着高度的戒心,几乎没有谁是真正可以信任的,任何友好问候的背后都可能暗藏着凶险的杀机,更别提大部分人都很不友好,如果你胆敢在某些高富帅的房子前瞎晃,很快就会被房顶的狙击手灭掉。

rust建造权限怎么获取

权限可通过 uMod 本身或通过安装在 RUST 服务器上的 uMod 插件获得。rust建造权限怎么获取

权限可通过 uMod 本身或通过安装在 RUST 服务器上的 uMod 插件获得。rust建造权限怎么获取

权限可通过 uMod 本身或通过安装在 RUST 服务器上的 uMod 插件获得。rust建造权限怎么获取

权限可通过 uMod 本身或通过安装在 RUST 服务器上的 uMod 插件获得。

首先你玩的服务器要有卡资源的插件 正版服务器基本没有那个插件 多数都是破解版的服务器才有那个插件

步骤1把包裹用碎石之类的拆分铺满(子弹 肉 不是木头什么都行) 不能留木头

步骤2砍木头堆(切记不是砍树)(只砍这一个 如果你包裹满了 这个木头堆是不会消失的) 之后你屏幕上方会出现包裹已满的提示 再看看你屏幕右方有没有出现获得木头的提示 如果有就证明这个服务器有卡资源的插件

步骤3 等你屏幕右面的提示达到你想要的量 你就将你铺满包裹的物品 重新叠加至一个物品栏 把包裹尽量清理出一些物品栏 之后砍一下你之前砍的木头堆 你就可以获得你所卡出的木头

卡资源只是让你省一些来回跑找资源的时间 并不会给你直接刷出多少资源

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 使用 Rust 构建 gRPC 服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情