93 lines
6.5 KiB
Markdown
93 lines
6.5 KiB
Markdown
<!-- ⚠️ ЛЕГАСИ — НЕ ИСПОЛЬЗОВАТЬ КАК РУКОВОДСТВО.
|
|
Исторические сравнительные тесты vs Yandex MQ (апрель 2026).
|
|
Перенесён из корня репозитория в doc/legacy 2026-08-13.
|
|
Замеры устарели, только для справки. -->
|
|
|
|
# Сравнительный анализ shared-sqs vs Yandex MQ
|
|
|
|
**Дата:** 2026-04-12 06:05 UTC
|
|
|
|
Итог сравнительных тестов shared-sqs и Yandex MQ.
|
|
|
|
## Главное
|
|
|
|
- shared-sqs показал конкурентоспособные результаты относительно Yandex MQ.
|
|
- На основных API-операциях shared-sqs в текущем прогоне быстрее или на уровне Yandex MQ.
|
|
- На batch-операциях shared-sqs также выглядит сильно.
|
|
- Проверкой охвачены все 17 поддерживаемых SQS-операций.
|
|
|
|
## Короткий вывод
|
|
|
|
Если смотреть на практические сценарии отправки, чтения и batch-обработки сообщений, shared-sqs уже выглядит как сильная реализация с хорошей latency и без явного проигрыша managed-сервису.
|
|
|
|
## Самые важные цифры
|
|
|
|
Формат: `min / avg / max / p95`, миллисекунды.
|
|
|
|
| Операция | Yandex MQ | shared-sqs | Что это значит |
|
|
|---|---:|---:|---|
|
|
| GetQueueUrl | 766 / 1346 / 2266 / 2060 | 739 / 752 / 770 / 760 | shared-sqs намного стабильнее |
|
|
| GetQueueAttributes | 804 / 820 / 847 / 828 | 738 / 752 / 768 / 765 | shared-sqs быстрее |
|
|
| SendMessage 1KB | 804 / 811 / 824 / 823 | 748 / 760 / 770 / 767 | shared-sqs быстрее |
|
|
| SendMessage 10KB | 916 / 967 / 996 / 987 | 880 / 913 / 965 / 951 | shared-sqs быстрее |
|
|
| SendMessage 32KB | 905 / 930 / 948 / 947 | 883 / 904 / 939 / 928 | shared-sqs быстрее |
|
|
| SendMessageBatch 10 | 784 / 803 / 827 / 820 | 718 / 746 / 782 / 759 | shared-sqs быстрее |
|
|
| ReceiveMessage | 782 / 826 / 869 / 864 | 738 / 748 / 777 / 751 | shared-sqs быстрее |
|
|
| DeleteMessage | 783 / 800 / 823 / 814 | 727 / 742 / 757 / 755 | shared-sqs быстрее |
|
|
| DeleteMessageBatch 10 | 818 / 845 / 872 / 864 | 742 / 783 / 821 / 810 | shared-sqs быстрее |
|
|
| ChangeMessageVisibilityBatch 10 | 806 / 829 / 848 / 841 | 803 / 824 / 838 / 836 | почти паритет, но shared-sqs чуть быстрее |
|
|
|
|
## Покрытие тестов по всем операциям
|
|
|
|
Ниже показано покрытие по каждой из 17 операций.
|
|
|
|
Обозначения:
|
|
|
|
- `Сравнение latency` — операция вошла в прямое сравнение shared-sqs и Yandex MQ.
|
|
- `Функциональная проверка` — операция отдельно проверялась на корректную работу.
|
|
- `Функционально проверено` — операция подтверждена в shared-sqs, без отдельной публичной latency-таблицы.
|
|
|
|
| Операция | Статус проверки | Комментарий |
|
|
|---|---|---|
|
|
| CreateQueue | Функциональная проверка | Использовалась в setup и проверялась как часть queue lifecycle |
|
|
| DeleteQueue | Функциональная проверка | Проверялась как часть queue lifecycle |
|
|
| GetQueueAttributes | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| GetQueueUrl | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| ListQueues | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| PurgeQueue | Сравнение latency | Контрольный замер, без многократного цикла |
|
|
| SetQueueAttributes | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| SendMessage | Сравнение latency | Сравнение для 1KB, 10KB и 32KB |
|
|
| SendMessageBatch | Сравнение latency | Batch из 10 сообщений |
|
|
| ReceiveMessage | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| DeleteMessage | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| DeleteMessageBatch | Сравнение latency | Batch delete на 10 сообщений |
|
|
| ChangeMessageVisibility | Сравнение latency | Полноценное сравнение с Yandex MQ |
|
|
| ChangeMessageVisibilityBatch | Сравнение latency | Batch visibility на 10 сообщений |
|
|
| TagQueue | Функционально проверено | Операция поддерживается и отдельно проверена |
|
|
| UntagQueue | Функционально проверено | Операция поддерживается и отдельно проверена |
|
|
| ListQueueTags | Функционально проверено | Операция поддерживается и отдельно проверена |
|
|
|
|
Итог по покрытию:
|
|
|
|
- `10` операций вошли в прямое latency-сравнение.
|
|
- `4` queue/control-plane операции дополнительно подтверждены функциональными сценариями.
|
|
- `3` tag-операции отдельно подтверждены функционально.
|
|
|
|
## Throughput
|
|
|
|
Тест: `SendMessage 1KB`, `5` воркеров по `10` сообщений.
|
|
|
|
| Провайдер | Успешно | Общее время | Грубая оценка |
|
|
|---|---:|---:|---:|
|
|
| Yandex MQ | 50 / 50 | 9116 ms | ~5 msg/s |
|
|
| shared-sqs | 50 / 50 | 8580 ms | ~5 msg/s |
|
|
|
|
Практический смысл:
|
|
|
|
- По грубой оценке `msg/s` здесь паритет.
|
|
- По общему времени shared-sqs завершает тест немного быстрее.
|
|
- Основное ограничение этого сценария задаётся AWS CLI, а не backend обоих сервисов.
|
|
|
|
## Финальный вывод для пользователя
|
|
|
|
shared-sqs уже выглядит достаточно сильным решением: latency на уровне или ниже Yandex MQ, batch-операции быстрые, а в общей рабочей зоне сервис показывает уверенные результаты. |