Мы хотим, чтобы наш Redis был более масштабируемым, и мы хотим иметь возможность добавлять больше экземпляров для чтения.
Я пытаюсь использовать эту новую конечную точку Reader: https://aws.amazon.com/about-aws/whats-new/2019/06/amazon-elasticache-launches-reader-endpoint-for-redis
Однако я не вижу никакого простого или автоматизированного способа для ioredis
использовать этот подход, где я могу указать, какая конечная точка будет для записи, а какая для чтения. Даже здесь я вижу, что рекомендуемый подход в конце состоит в том, чтобы «разделить вручную»: https://github.com/luin/ioredis/issues/387
Знаете ли вы какое-либо существующее решение или хороший подход, где я могу установить, какие конечные точки будут будет использоваться для записи и какой из них будет использоваться для чтения?
Самым простым для меня сейчас является какой-то слой "прокси", где я создам два экземпляра Redis и отправлю все записи в основная конечная точка и все считывания в конечную точку считывателя. Однако я бы предпочел какой-то более лучший (или хорошо протестированный) подход.
PS: я пытался "взломать" его с помощью Cluster
функциональности ioredis
, но даже простого соединения без какой-либо функциональности и одного - первичного endpint - завершается с ошибкой ClusterAllFailedError: Failed to refresh slots cache.
(чтобы включить конечную точку Reader - режим кластера должен быть выключен)