Redis, ZMQ, etc. Можно ли одновременно реализовать что-либо на подобие pub/sub и queue?
Доброго времени суток.
Появилась проблема при реализации EventBus'а. Необходимо реализовать получение сообщений двумя способами: для всех клиентов и для первого, который схватит. То есть отсылать сообщения как в pub/sub или как в queue в зависимости от типа сообщения. Пишу на Python. В качестве брокера использовать планировал что-нибудь легкое, типа Redis или ZeroMQ. (Может еще какие варианты посоветуете).
Можно ли как-нибудь реализовать данную возможность?
Смотрите - есть 2 основные механики - push-based и pull-based. pub/sub это просто один из принципов очередей де факто.
то что вы хотите реализовать это отличие exchange и queue в RabbitMQ. ZeroMQ вообще никому не посоветую, да и Redis не очень про очереди - просто немного умеют в них
Посмотрите внимательно на dramatiq. В качестве брокера в этом фреймворке можно использовать RabbitMQ, Redis или для легковесности брокер с хранением в памяти