Перейти к содержанию

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"] }
crates/ruststream-sqs-sns/examples/sqs_service.rs
#[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.