ruststream-gcp-pubsub¶
ruststream-gcp-pubsub запускает сервис RustStream
на Google Cloud Pub/Sub поверх официального клиента
google-cloud-pubsub.
Поток сообщений, который читает обработчик, - это подписка в режиме streaming pull. Подтверждение нативное и отдельное для каждого сообщения. На подписке exactly-once ack идёт в подтверждаемой форме. Ключ упорядочивания - это ключ партиционирования фреймворка.
ruststream = { version = "0.7", features = ["macros", "json"] }
ruststream-gcp-pubsub = "0.7"
serde = { version = "1", features = ["derive"] }
Крейт опубликован на crates.io и следует линейке ruststream 0.7. Его MSRV - 1.95, и его задаёт
ядро фреймворка.
Сервис на Pub/Sub вы собираете в функции приложения:
#[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);
},
)
}
Что даёт крейт¶
Один дескриптор подписки
несёт все настройки подписки: управление потоком, на сколько продлевается срок подтверждения,
сколько ждёт неполный пакет и как долго одна доставка может оставаться неурегулированной. Предел
попыток и тема dead-letter, названные в точке монтирования, становятся собственной политикой
dead-letter этой подписки, поэтому сервис не публикует копий для повторной доставки.
Публикация
добавляет одну настройку на сообщение - ключ упорядочивания, - и назвать его может место вызова,
заголовок с ключом партиционирования или точка монтирования. С возможностью
testing
тест запускает то же приложение, что и main: PubSubBroker подключается внутрипроцессно, без
сервера.
Куда идти дальше¶
- Справочник крейта - подписка, публикация, прелюдия, документ
AsyncAPI, тестирование, эксплуатация. - Документация RustStream - установка, учебник, список брокеров.
- Справочник фреймворка - как писать подписчиков, маршрутизация, кодеки, middleware, CLI.
Как этот сайт связан с документацией RustStream¶
Этот сайт - входная страница брокера Pub/Sub. Всё, что даёт сам брокер, лежит на docs.rs, а фреймворк описан в своём крейте и на сайте RustStream.