本书将向您介绍Rust的微服务开发。我在很久以前就开始使用Rust了,早在2015年。自版本1.0发布以来只有几个月了,当时我并不认为这个工具会引发一场会破坏的无声革命与系统编程相关的传统,在那个时候,它是乏味的,绝不是时髦的。
也许我夸大了一点,但我目睹了公司如何停止使用惯用工具并开始重写其部分产品或Rust中的一些服务,他们对结果非常满意,他们继续这样做时间和再次。如今,Rust是区块链计划的重要组成部分,是WebAssembly的旗舰产品,是开发利用所有可用服务器资源的快速可靠微服务的绝佳工具。因此,Rust已经从一个好奇的开发人员的业余爱好工具转变为现代产品的坚实基础。
在本书中,我们将学习如何使用Rust创建微服务。我们首先简要介绍微服务,并讨论为什么Rust是编写它们的好工具。然后,我们将使用超级软件包创建我们的第一个微服务,并学习如何配置微服务和日志活动。之后,我们将探讨如何使用serde crate支持不同格式的请求和响应。
本书专为两类读者经验丰富的Rust开发人员而设计,他们是微服务的新手,也是Rust新手的高级微服务开发人员。我试图覆盖今天Rust开发人员可用的有用工具和包装箱的生态系统。本书描述了微服务的创建,从高级框架到构建低级异步组合器,以最小的资源阻塞时间产生响应。本书旨在让您找到特定任务的解决方案。
为了能够理解本书中涉及的主题,您需要Rust编程语言的扎实背景(您应该能够使用Cargo 编写和编译应用程序,了解生命周期和借用概念,了解特征如何工作,并了解如何使用引用计数器,互斥锁,线程和通道)。如果您不熟悉Rust,请在阅读本书之前花些时间了解这些概念。
您还必须知道如何编写一个处理HTTP协议的最小后端。您必须了解REST是什么,以及如何将其用于应用程序。但是,您不必了解HTTP / 2的工作原理,因为我们将使用提供与特定传输无关的抽象的包。
您至少需要Rust版本1.31。 使用rustup安装它:https://rustup.rs/。 要编译某些章节中的示例,您需要安装每晚版本的编译器。 您还需要使用Docker Compose安装Docker来运行带有数据库和消息代理的容器,以简化本书中examplemicroservices的测试。
您可以从www.packt.com上的帐户下载本书的示例代码文件。如果您在其他地方购买了本书,可以访问www.packt.com/support并注册以直接通过电子邮件将文件发送给您。
您可以按照以下步骤下载代码文件:
登录或注册www.packt.com。
选择SUPPORT选项卡。
单击Code Downloads&Errata。
在“搜索”框中输入图书的名称,然后按照屏幕上的说明操作。
下载文件后,请确保使用最新版本解压缩或解压缩文件夹:
适用于Windows的WinRAR / 7-Zip
Zipeg / iZip / UnRarX for Mac
适用于Linux的7-Zip / PeaZip
该书的代码包也托管在GitHub上,网址为https://github.com/PacktPublishing/Hands-On-Microservices-with-= Rust。如果代码有更新,它将在=现有的GitHub存储库上更新。
我们还提供了丰富的书籍和视频目录中的其他代码包,网址为https://github.com/PacktPublishing/。去看一下!
我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 您可以在此处下载:https://www.packtpub.com/sites/default/files/downloads/9781789342758_ColorImages.pdf。
本书中使用了许多文本约定。
CodeInText:表示文本,数据库表名,文件夹名,文件名,文件扩展名,路径名,虚拟URL,用户输入和Twitter句柄中的代码字。 下面是一个示例:“将下载的WebStorm-10 * .dmg磁盘映像文件作为系统中的另一个磁盘挂载。”
代码块设置如下:当我们希望引起您对代码块的特定部分的注意时,相关的行或项目以粗体显示:
let conn = Connection::connect("postgres://postgres@localhost:5432", TlsMode::None).unwrap();
当我们希望引起您对代码块的特定部分的注意时,相关的行或项目以粗体显示:
#[derive(Deserialize, Debug)]
struct User {
name: String,
email: String,
}
任何命令行输入或输出都写成如下:
cargo run -- add user-1 [email protected]
cargo run -- add user-2 [email protected]
cargo run -- add user-3 [email protected]
粗体:表示您在屏幕上看到的新术语,重要单词或单词。 例如,菜单或对话框中的单词会出现在文本中。 下面是一个示例:“从”管理“面板中选择”系统信息“。
欢迎来自我们读者的反馈。
一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中提及书名,并发送电子邮件至[email protected]。
勘误表:虽然我们已尽力确保内容的准确性,但确实会发生错误。 如果您在本书中发现错误,我们将非常感谢您向我们报告此事。 请访问www.packt.com/submit-errata,选择您的图书,点击勘误表提交表格链接,然后输入详细信息。
盗版:如果您在互联网上以任何形式发现我们作品的任何非法副本,如果您向我们提供位置地址或网站名称,我们将不胜感激。 请通过[email protected]与我们联系,并提供相关材料的链接。 如果您有兴趣成为作者:如果您有专业知识的主题,并且您有兴趣撰写或撰写图书,请访问authors.packtpub.com。
请留下评论。 阅读并使用本书后,为什么不在您购买的网站上留下评论? 潜在的读者可以查看并使用您的公正意见来做出购买决定,Packt可以了解您对我们产品的看法,我们的作者可以看到您对其图书的反馈。 谢谢! 有关Packt的更多信息,请访问packt.com。