文章
本章将讨论如何使用简单的 `SELECT` 语句从 PostgreSQL 查询数据。PostgreSQL 的 `SELECT` 语句有诸多独特的特性,让我们一起感受一下。
PostgreSQL 是一个功能强大的开源对象关系数据库系统。它经过数十年的积极开发和经过验证的架构,使其在可靠性、数据完整性和正确性方面赢得了良好的声誉。而其天生支持异步操作的特性,在高并发场景中倍受欢迎。同时,它的扩展性极强,只要你有能力,你可以使用任何你熟悉的其它开发语言来编写 PostgreSQL 脚本,比如:Rust、Python 等。
本章将讨论 etcd 的鉴权:如果没有鉴权,你的 etcd 服务(集群)相当于公共服务器,任何人都可以对数据进行操作。在之前章节中,我们分别用不同方式部署了 etcd。本文针对这些不同的部署方法,来讨论如何开启鉴权。以及如何在 Rust 中访问开启鉴权的 etcd。
前置知识:etcd及配置中心
支持试读本章我们将学习分布式KV存储:etcd的基础知识、单节点部署、集群部署、rust集成以及基于etcd实现的配置中心:写入配置、读取配置、配置的热加载。
Next.js 的 App 路由有一个约定:定义 `loading.js`,那么 Next.js 会自动在页面加载中显示这个组件,加载完成之后,自动隐藏该组件。
本章讨论 Next.js App 路由的布局。相比之前的 Pages 路由,App 路由的布局简单多了:Next.js 会自动调用布局文件。
本章将讨论使用 `lettre` 在 rust 中实现发送邮件。我们将分别使用 Gmail 和 Mail.ee 来作测试。
`lapin` 是一个用 rust 实现的 AMQP 客户端,它可以实现与 RabbitMQ 的交互。
本章我们讨论如何优雅方便地使用 sqlx 构建复杂的、动态的 SQL。sqlx 提供了 [`QueryBuilder`](https://docs.rs/sqlx/latest/sqlx/struct.QueryBuilder.html) 结构体,它可以方便地实现 SQL 的构建。
本章将讨论 sqlx 的查询构造器。sqlx 提供了多种查询构造器:`query`、`query_as`、`query!`、`query_as!`、`QueryBuilder`等,合理使用将提升效率。这些查询构造器用来生成数据库所需要的 SQL 语句,不要被它们的名字迷惑了——认为它们是用来查询数据(SQL中的`SELECT`行为)
本章我们使用 tailwind 将之前课程中 NextJS 迷你博客改造为响应式的布局。
本章将讨论如何配置 tailwind,以及几个 tailwind 官方插件。