Учитывая ваши требования, я бы попробовал Redis.Он будет работать лучше, чем другие решения, и даст вам более точный контроль над характеристиками устойчивости.В зависимости от языка, который вы используете, вы можете использовать сегментированный кластер Redis (вам нужны привязки Redis, которые поддерживают согласованное хеширование - не все это делают).Это позволит вам масштабировать до указанного вами объема.Я видел 10k / sec на своем ноутбуке в некоторых базовых тестах.
Возможно, вы захотите использовать операции со списком в Redis (LPUSH для записи, BRPOP для чтения), если вы хотите использовать семантику очереди.
У меня есть бывший клиент, который развернул Redis в производстве в качестве очереди сообщений прошлой весной, и он был очень доволен этим.