Проблема с переключением главного устройства на подчиненное устройство в ручном кластере go-redis

У меня проблемы с go-redisфункциональные возможности кластера; Я используюgo-redisс cluster с моим собственным ClusterSlotsfunc для поддержки информации о слотах кластера, а мой redis - это не кластер, а набор узлов redis master/slave. Мои подчиненные узлы по сути являются репликами, поэтому я не хочу отправлять им какие-либо операции записи.

Приложение работает нормально в среде с высокой нагрузкой около двух часов и начало отправлять запросы записи на подчиненные узлы. Я установил MaxRedirects на-1и ReadOnly, чтобыfalse, но клиент, похоже, не выбирает ТОЛЬКО главный узел и сбой / тайм-аут вместо переключения на подчиненный.

Вот мой redis.ClusterOptions:

    redisConf := &redis.ClusterOptions{

        ReadOnly:      false,
        RouteRandomly: false,

        MinIdleConns: 150,
        MaxRetries: 16,
        MaxRedirects: -1,
        PoolSize: 2000,

        ReadTimeout: time.Millisecond * 5000,
        WriteTimeout: time.Millisecond * 5000,
        DialTimeout: time.Millisecond * 5000,
        PoolTimeout: time.Millisecond * 7000,

        IdleCheckFrequency: time.Minute * 1,
    }

Пожалуйста, посоветуйте, как я могу настроить свой go-redisконфигурация кластера, чтобы он общался только с главными узлами. Заранее спасибо.

0 ответов

Другие вопросы по тегам