跳转至

ruststream-sqs-sns

英文版本为准

本页译自英文,由模型翻译。若与英文原文存在差异,以英文原文为准。

ruststream-sqs-sns 是 RustStream 消息框架的 Amazon SQS Broker,并支持 SNS 扇出发布。订阅者用长轮询读自己的队列,也可以通过 ReceiveMessage 取得原生的批次。重试走消息的可见性超时,进死信队列则由队列的重新驱动策略决定。向 FIFO 队列发布 时,你可以逐条指定消息组,也可以为整个发布位置固定一个,并从收到的消息里读回它。

传输建立在官方的 aws-sdk-sqs 客户端之上。sns feature 通过 aws-sdk-sns 加上向 SNS 主题发布的能力;它默认关闭,只用队列的服务 不会链接 SNS 客户端。testing feature 给 Broker 一个进程内模式,测试无需服务器就能运行生产应用; asyncapi feature 则把 sqs 绑定写进框架生成的文档。

这个 crate 跟随已发布的 ruststream 0.7 线:

ruststream = { version = "0.7", features = ["macros", "json"] }
ruststream-sqs-sns = "0.7"
serde = { version = "1", features = ["derive"] }
crates/ruststream-sqs-sns/examples/sqs_service.rs
#[app]
fn service() -> impl App {
    RustStream::new(AppInfo::new("orders", "0.1.0")).with_broker(
        SqsBroker::new()
            .endpoint("http://localhost:4566")
            .test_credentials()
            .region("us-east-1"),
        |b| {
            b.include(handle);
        },
    )
}

接下来看什么

crate 自己的文档就是它在 docs.rs 上的 rustdoc,开头正是本站从前那份指南:队列自己能做什么、一次 投递如何结算、用尽次数的消息去哪里,以及一次发布可以带上什么。

  • 订阅 - 队列描述符、结算、尝试次数上限、批次,以及一条投递带着什么。
  • 发布 - 两种发布策略、回复、SNS 扇出和 FIFO 消息组。
  • RustStream 文档 - 框架本身:订阅者、路由、编解码器、中间件和 CLI。
  • API 参考 - crate 在 docs.rs 上的 rustdoc。

本站与 RustStream 文档的关系

本站是入口页。SQS 和 SNS 做什么,写在 crate 的 rustdoc 里,在进程内测试生产应用的方法和运维一面(发布者、 权限、服务的各项上限)也在那里。适用于每个 Broker 的框架概念,写在 RustStream 文档里。