Комментарии 8
Как в pub/sub реализуется гарантия доставки сообщения?
Если коротко отвечать, то никак, я об этом упомянул в статье в разделе ограничений. Но в целом в зависимости от вариантов использования Pub/Sub
1/ это может в принципе не требоваться из-за особенностей реализуемого бизнес-процесса
2/ можно воспользоваться List + AOF
3/ можно попробовать реализовать OutBox/inBox + подтверждение доставки на стороне приложения
Не понятно, это высокопроизводительное решение по сравнению с чем. Не могли бы вы предоставить конкретные результаты тестов производительности для описанных конфигураций Redis (Sentinel, Cluster, Pub/Sub)? Было бы полезно увидеть метрики, такие как время отклика и пропускная способность. А также сравнение с другими решениями, которые в этих же тестах были бы менее производительны.
На самом деле вопросы производительности я не обсуждаю, тут все про HA. Производительность если и упоминаю, то косвенно исключительно из общих соображений, например в конфигурации Sentinel мастер управляет всеми каналами, что сказывается на производительности, и в этом случает Redis Cluster предпочтительнее.
А так да, постараюсь сделать load test в равнении с rabbit/kafka
Redis все-таки скорее про распределенный кэш. Для публикаций и подписок больше подходят брокеры сообщений (Kafka\Artemis\Rabit\etc). Тем более, что для pub/sub Redis дает только at most once семантику (слабейшую), т.е. не может гарантировать примерно ничего и нужно быть готовым как к дублям так и потерям сообщений.
Стоило упомянуть альтернативы внутри того же Redis: простейшее - собрать подобное на lists и более навороченный - Redis Streams
ну как бы ни list, ни Redis Streams не являются альтернативами для Redis Sentinel или Redis Cluster. List или, например, ZSet, или Redis Streams решают проблему персистентности сообщений и в каком-то виде обеспечивают гарантии доставки. Их использование совместно с Redis Sentinel или Redis Cluster это тоже отдельная история, которую по-хорошему лучше отдельно описать, там есть свои нюансы касающиеся ожиданий гарантий доставки
Кластеры и мир: хроника высокодоступного Pub/Sub в Redis