Кластер Memcached с Finagle

Как я могу создать кластер сервера memcached и получить к нему доступ с помощью finagle. ct Похоже, что ServerSet с ZooKeeper можно использовать для построения кластера. Но у меня есть несколько вопросов.

1 Какой алгоритм раздачи ключа на memcached серверы в кластере. Могу ли я изменить это? 2 Как finagle обнаруживает сбой сервера memcached и как выполняется аварийное переключение. Вроде все делается со стороны клиента. На стороне сервера ничего делать не нужно.

Спасибо


person jordan    schedule 25.09.2012    source источник


Ответы (1)


  1. Алгоритм по умолчанию, используемый для распределенных ключей, — это алгоритм Кетама. Посмотреть код Вы не можете легко изменить алгоритм.

  2. Существуют разные алгоритмы, которые обнаруживают разные типы сбоев:

    • failFast: if there's a disconnection, we evict the server from the pool and start a background process to reconnect to it
    • повторные попытки: если не удалось выполнить действие, мы можем повторить определенное количество попыток (возможно, используя экспоненциальную отсрочку)
    • тайм-аут (разные уровни), объяснять не нужно
    • балансировка: на основе наименьшего количества ожидающих запросов на хосты
person Steve Gury    schedule 27.09.2012
comment
Один вопрос по обнаружению отказов. Каждый клиент решает отказоустойчивость самостоятельно. Как несколько клиентов могут сохранить один и тот же пул. Используете кластер Zookeeper? Спасибо - person jordan; 27.09.2012
comment
Нет никакой гарантии, что клиенты всегда будут иметь один и тот же пул серверов, и вам это не нужно (у вас могут быть ошибки разделения, которые препятствуют этому). Алгоритм ketama распределяет ключи таким образом, что удаление сервера не влияет значительно на распределение ключей. - person Steve Gury; 27.09.2012
comment
Еще один вопрос. Если я хочу добавить сервер в кластер на лету, как это сделать с помощью finagle? Спасибо - person jordan; 27.09.2012
comment
Вы поняли это? Добавление времени выполнения? - person Ravindranath Akila; 28.11.2013