ruststream-nats¶
ruststream-nats подписывает сервис RustStream на
субъекты NATS и публикует в них сообщения. Обработчик привязывается к субъекту Core NATS или к
консьюмеру JetStream. NATS сам сопоставляет ответы с запросами, поэтому сервис может отправить
запрос и дождаться ответа. Публикация в JetStream заявляет, чего она ждёт от стрима, и стрим
отвергает её, когда ожидание не выполнено.
С фичей testing тест запускает рабочее приложение сервиса: 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:
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);
},
)
}
Что умеет крейт¶
Справочник крейта - учебник по всему этому, и каждая тема в нём отдельный раздел:
- Три дескриптора подписки, по одному на каждую форму подписки NATS: один субъект, шаблон и pull-консьюмер JetStream.
- Две политики публикации: обычный Core NATS и та, что дожидается подтверждения сообщения стримом.
- Идентификатор дедупликации и ожидания от стрима, которые одна публикация в JetStream заявляет о себе.
- Подтверждение и отложенная повторная доставка: консьюмер JetStream закрывает доставку на сервере, а субъект Core NATS не закрывает её вовсе.
- Документ AsyncAPI,
который заполняет крейт, и тестирование:
рабочее приложение под обвязкой
TestApp, внутри процесса или против живого сервера.
Куда идти дальше¶
- Справочник NATS - сам крейт: дескрипторы, политики, настройки одного сообщения, тестирование.
- Документация RustStream - установка, учебник, список брокеров.
- Справочник фреймворка - подписчики, маршрутизация, кодеки, middleware, CLI.
Как этот сайт связан с документацией RustStream¶
С этой страницы NATS начинается, а из чего он состоит - в справочнике крейта. Сам фреймворк описан вместе с его крейтом, а входные страницы лежат на сайте RustStream.