内容介绍
本专题将带你使用逐步实现一个非常常见的功能:在用户注册时,通过发送验证码。RabbitMQ 消息队列
RabbitMQ 是目前市场上最流行的消息队列之一,本章将讨论如何安装部署 RabbitMQ。通过 lapin 集成 RabbitMQ
`lapin` 是一个用 rust 实现的 AMQP 客户端,它可以实现与 RabbitMQ 的交互。通过 lettre 发送邮件
本章将讨论使用 `lettre` 在 rust 中实现发送邮件。我们将分别使用 Gmail 和 Mail.ee 来作测试。实现用户注册与激活
本章将实现最终的功能:用户注册,并发送激活邮件。
RabbitMQ 消息队列
RabbitMQ 是目前市场上最流行的消息队列之一,本章将讨论如何安装部署 RabbitMQ。
消息队列
如果你对消息队列还不了解,可以查看其它资料,比如维基百科对其的简单介绍。
消息队列在企业应用中有非常重要的作用,这篇文章列举了消息队列的主要应用场景。
在本专题中,使用消息队列是为了异步处理:在用户注册完成之后,异步发送邮件验证码,以避免发送邮件过程中,让用户长时间停留在注册页面。
RabbitMQ 是应用最广泛的消息队列之一,它使用的是 AMQP 协议,本专题使用该消息队列。
官方文档详细描述了在各平台上安装 RabbitMQ 的方法和步骤,其中 docker 安装无疑是最方便的方式:
docker run --name rabbitmq -p 127.0.0.1:5672:5672 -p 127.0.0.1:15672:15672 -d rabbitmq:3.12-management
这里映射了2个端口:
5672
:与客户端通讯端口15672
:管理面板 Web UI 端口
如果部署在服务器上,你可以通过 nginx 反代 15672
端口,实现在外部访问管理面板
在线使用
CloudAMQP 提供了免费的 RabbitMQ 实例,它有多个数据中心,为了更流畅地访问,建议选择以下数据中心:
- AWS
AP-East-1 (Hong Kong)
,中国香港AP-SouthEast-1 (Singapore)
,新加坡AP-NorthEast-1 (Tokyo)
,日本东京AP-NorthEast-1 (Seoul)
,韩国首尔
- GCE:只有中国台湾可选,其它亚太地区都满了
AP-East-1 (Hong Kong)
,中国香港AP-SouthEast-1 (Singapore)
,新加坡AP-NorthEast-1 (Tokyo)
,日本东京AP-NorthEast-1 (Seoul)
,韩国首尔
实例创建成功之后,你可以进行操作了。
实例连接信息
消息队列管理
在实例列表中,点击右边的 RabbitMQ Manager
或者在实例详情中,点击左上角的 RabbitMQ Manager
,即可进入管理面板。(对应 docker 部署中的 15672
端口)
免费实例限制
项目 | 限制 |
---|---|
最大连接数 | 20 |
队列的最大闲置时间 | 28天 |
队列数上限 | 150 |
消息数上限 | 1,000,000 |
队列长度 | 10,000 |
对于开发测试来说,免费实例完全够用了
对于开发测试来说,免费实例完全够用了