Redis дозорная реализация

У нас есть настройка с:
2 php сервер
2 сервера Redis, работающие как ведущий / ведомый
1 Сервер регистрации, который хранит все виды журналов в elastcisearch

Мы хотим реализовать автоматический переход на другой ресурс для серверов redis, прямо сейчас на php-серверах основной адрес redis не задан жестко.

И на сервере журналов, который имеет экземпляр logstash с вводом redis от master, также прописывается в конфигурации logstash.

Мы установили Redis Sentinel на обоих серверах Redis, и он работает нормально.

Но проблема в том, как получить мастер в php и logstash, или это не правильный путь.

Для php я нашел эту оболочку клиента https://github.com/Sparkcentral/PSRedis

Но я ничего не нашел для logstash, я клянусь, что просто ищу в неправильном направлении

Таким образом, вопрос в том, является ли это правильным направлением, если бы кто-то не мог указать мне на это.

0

Решение

Для работы с Sentinel помните, что вам нужно три экземпляра, поэтому при настройке обязательно установите экземпляр Sentinel на сервер журналов и по одному на каждый экземпляр сервера redis. Три копии Sentinel должны запускаться на компьютерах / виртуальных машинах, которые, как считается, дают сбой независимым друг от друга способом (поэтому не рекомендуется использовать несколько виртуальных машин на одном физическом хосте).

Тем не менее, для работы на Sentinel ваши клиенты должны реализовать протокол Sentinel, как указано здесь: http://redis.io/topics/sentinel-clients.

в https://github.com/Sparkcentral/PSRedis страница Я не могу найти подсказки о том, что именно они реализуют, реализуют ли они последний протокол Sentinel, как указано в моем сообщении выше? Я хотел бы открыть вопрос и спросить, реализуют ли они документированный протокол Sentinel: если нет, они должны, если да, они должны документировать их в README.

По-видимому, сам Predis еще не реализует поддержку Sentinel: https://github.com/nrk/predis/issues/131

Если у вас есть время, я предлагаю:

  1. Спросите PSRedis, что именно они реализуют.
  2. Ознакомьтесь с протоколом, описанным в документе Sentinel, это довольно простые вещи.
  3. Проверьте себя, правильно ли реализовано в PSRedis, если нет, предоставьте запрос на удаление.

Счастливого взлома.

5

Другие решения

В Python, если вы хотите знать, является ли ваш Redis мастером, выполните:

import redis

R = redis.Redis()
role = R.info()['role']
if role=='master':
print 'I am master'
else:
print 'I am slave'
-3

По вопросам рекламы [email protected]