Как обновить кластерные узлы Redis Elasticache в приложении Rails?

Вскоре я буду внедрять приложение Elasticache в Rails, используя гем Elasticache-Dalli. Их документация подробно описывает, как обновлять узлы, но не детализирует, как часто их обновлять или какими средствами.

Документация AWS гласит следующее:

Если узел выходит из строя, ElastiCache отключает этот узел и запускает замену. Процесс замены занимает несколько минут. В течение этого времени метаданные во всех узлах по-прежнему показывают конечную точку отказавшего узла, но любая попытка взаимодействия с узлом завершится неудачей. Поэтому ваша логика всегда должна включать логику повторных попыток. http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.HowAutoDiscoveryWorks.html

  • Как часто мы должны обновлять узлы?
  • Как мы можем обновить узлы в приложении Rails, используя этот Gem? Другими словами, должно ли это быть заданием cron или нам нужно отказов сервера Rails?
  • Кроме того, приложения, которые используют Elasticache-Dalli, должны создавать свою собственную "логику повторных попыток"? Если так, то как?

1 ответ

Ссылка gem и aws, которую вы просматриваете, предназначена для ElastiCache (memcached), которая использует балансировку нагрузки на стороне клиента, а не на стороне сервера.

Если вы используете кластер Redis, вам не нужно беспокоиться об обновлении конечной точки узла, так как балансировка нагрузки на стороне сервера и логика отработки отказа берет на себя всю работу по перенаправлению трафика на исправный узел.

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