跳转至

ruststream-gcp-pubsub

英文版本为准

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

ruststream-gcp-pubsub 在 Google Cloud Pub/Sub 上运行 RustStream 服务,底层是官方的 google-cloud-pubsub 客户端。

处理器读取的消息流,就是一条流式拉取订阅。确认是原生的,而且逐条进行。在精确一次订阅上,ack 采用带确认的形式。排序键就是框架的分区键。

ruststream = { version = "0.7", features = ["macros", "json"] }
ruststream-gcp-pubsub = "0.7"
serde = { version = "1", features = ["derive"] }

该 crate 发布在 crates.io 上,跟随 ruststream 的 0.7 线。它的 MSRV 是 1.95,由框架核心决定。

你在 app 函数里组装一个 Pub/Sub 服务:

crates/ruststream-gcp-pubsub/examples/pubsub_service.rs
#[ruststream::app]
fn app() -> impl App {
    RustStream::new(AppInfo::new("orders", "0.1.0")).with_broker(
        PubSubBroker::new("my-project").emulator("localhost:8085"),
        |b| {
            b.include(handle);
        },
    )
}

这个 crate 给你什么

一个订阅描述符 带上了订阅的全部设置:流控、确认截止时间每次延长多久、未满的批还要等多久,以及一条投递最长可以 多久不被结算。在挂载点写下的重试上限和死信主题,会变成这条订阅自己的死信策略,因此服务不会再发 布任何用于重新投递的副本。发布 只多出一项逐条消息的设置,也就是排序键,它可以由调用处、分区键请求头或挂载点给出。 启用 testing 特性后,测试运行的就是 main 所用的同一个应用:PubSubBroker 在进程内连接,不需要服务器。

接下来读什么

  • crate 参考 - 订阅、发布、prelude、AsyncAPI 文档、测试与运维。
  • RustStream 文档 - 安装、教程和 Broker 列表。
  • 框架参考 - 编写订阅者、路由、编解码器、中间件和 CLI。

本站点与 RustStream 文档的关系

本站点是 Pub/Sub Broker 的入口页。Broker 自身提供的一切都在 docs.rs 上,框架则由它自己的 crate 和 RustStream 站点介绍。