ruststream-sqs-sns¶
ruststream-sqs-sns - брокер Amazon SQS для фреймворка обмена сообщениями
RustStream с публикацией через SNS всем подписчикам
разом. Подписчик читает свою очередь длинным опросом и умеет брать встроенные пакеты через
ReceiveMessage. Повторные попытки идут через тайм-аут видимости сообщения, а в очередь
недоставленных сообщений его перекладывает политика перенаправления этой очереди. Группу сообщений
вы задаёте на каждую публикацию в FIFO-очередь или закрепляете за всей позицией публикации, а в
полученном сообщении читаете её обратно.
Транспорт построен на официальном клиенте aws-sdk-sqs. Фича
sns добавляет публикацию в темы SNS через aws-sdk-sns. По
умолчанию она выключена, и сервис, которому нужны только очереди, не компонует клиент SNS. Фича
testing даёт брокеру внутрипроцессный режим, и тест запускает рабочее приложение без сервера.
Фича asyncapi добавляет привязки sqs в документ, который создаёт фреймворк.
Крейт следует за выпущенной линейкой ruststream 0.7:
ruststream = { version = "0.7", features = ["macros", "json"] }
ruststream-sqs-sns = "0.7"
serde = { version = "1", features = ["derive"] }
#[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);
},
)
}
Куда идти дальше¶
Собственная документация крейта - это его rustdoc на docs.rs, и открывается он тем руководством, которое раньше лежало на этом сайте: что очередь умеет сама, как завершается доставка, куда уходит исчерпавшее попытки сообщение и что может нести публикация.
- Подписка - дескриптор очереди, завершение доставки, предел попыток, пакеты и то, что несёт доставленное сообщение.
- Публикация - две политики публикации, ответы, доставка через SNS всем подписчикам разом и группы сообщений FIFO.
- Документация RustStream - сам фреймворк: подписчики, роутинг, кодеки, middleware, CLI.
- Справочник API - rustdoc крейта на docs.rs.
Как этот сайт связан с документацией RustStream¶
Этот сайт - входная страница. Что делают SQS и SNS, описано в rustdoc крейта, там же тестирование рабочего приложения внутри процесса и эксплуатационная сторона: издатель, права доступа и пределы службы. Понятия фреймворка, общие для всех брокеров, описаны в документации RustStream.