跳转至

ruststream-nats

英文版本为准

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

ruststream-nats 把 RustStream 服务订阅到 NATS 的 subject 上,并向这些 subject 发布消息。一个处理器绑定到 Core NATS 的 subject,或者绑定到一个 JetStream 消费者。NATS 会把回复和请求对应起来,因此服务可以发出一次请求并等待答复。JetStream 的 一次发布会说明它对流的期望,期望不成立时流就拒绝这次发布。

启用 testing feature 后,测试运行服务的生产应用:NatsBroker 在进程内运行,不需要 NATS 服务器, 也可以对着运行中的服务器。

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

[dev-dependencies]
ruststream-nats = { version = "0.7", features = ["testing"] }

服务把自己的处理器挂载在 NatsBroker 上:

crates/ruststream-nats/examples/nats_core.rs
use ruststream_nats::prelude::*;
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct Order {
    id: u64,
}

#[subscriber("orders.created")]
async fn handle(order: &Order) -> HandlerOutcome {
    println!("got order {}", order.id);
    HandlerOutcome::ack()
}

#[ruststream::app]
fn app() -> impl App {
    RustStream::new(AppInfo::new("orders", "0.1.0")).with_broker(
        NatsBroker::new("nats://localhost:4222"),
        |b| {
            b.include(handle);
        },
    )
}

这个 crate 提供什么

crate 参考就是这一切的教科书,每个主题在其中都是一节:

接下来读什么

  • NATS 参考 - crate 本身:描述符、策略、单条消息的设置和测试。
  • RustStream 文档 - 安装、教程和 Broker 列表。
  • 框架参考 - 订阅者、路由、编解码器、中间件和 CLI。

本站点与 RustStream 文档的关系

NATS 从这一页开始,而它由什么构成写在 crate 参考里。框架本身 和它自己的 crate 一起记录,入口页面在 RustStream 站点上。