По-перше, давайте поговоримо дозорним.
Sentinel управляє відмовою, він не налаштовує Redis для HA. Це важлива відмінність. По-друге, діаграма, яку ви опублікували, насправді є поганою настройкою - ви не хочете запускати Sentinel на тому самому вузлі, що і вузли Redis, якими керує. Коли ви втрачаєте цього господаря, ви втрачаєте і те, і інше.
Щодо "Це марнотрата ресурсів?" це залежить від вашого випадку використання. У цій програмі вам не потрібно три вузла Redis, вам потрібні лише два. Три збільшує ваше надмірність, але це не потрібно. Якщо вам потрібна додаткова надмірність, то це не марно витрачайте ресурси. Якщо ви не потребуєте надмірності, то просто запустіть один екземпляр Redis і назвіть це добре - оскільки працює більше буде "витрачено".
Іншою причиною запуску двох рабів було б розділення читання. Знову ж таки, якщо вам це знадобиться, то це не буде марним.
Щодо "Чи є кращий спосіб повного використання наявних ресурсів?" ми не можемо відповісти на це, оскільки це дуже залежить від конкретного сценарію та коду. Якщо сказати, якщо об'єм даних для зберігання "невеликий", а частота команд не дуже велика, то пам'ятайте, що вам не потрібно присвячувати хост Redis.
Тепер для "Чи Redis кластеризує альтернативу Redis sentinel?". Це дійсно повністю залежить від вашого випадку використання. Redis Cluster - це не рішення, яке стосується НА, - це багаторазове рішення, яке не відповідає програмі. Якщо ваша мета - просто НА, то вона, ймовірно, не підходить для вас. Redis Cluster має обмеження, особливо щодо операцій з декількома ключами, тому це не обов'язково просто "просто використовувати кластер".
Якщо ви думаєте, що три хости, які працюють з Redis (і три запущені дозорці), є марними, ви, швидше за все, вважаєте, що Кластер буде ще більшим, тому що для цього потрібно більше ресурсів.
Питання, які ви задавали, напевно, занадто широкі та ґрунтуються на думці, щоб вижити, як написано. Якщо у вас є конкретний випадок / проблема, з якою ви працюєте, будь ласка, оновіть її, щоб ми могли надати конкретну допомогу та інформацію.
Оновлення для специфікацій:
Для правильного управління відмовою у вашому сценарії я б працював з 3 дозорними, один працює на вашому сервері JBoss. Якщо у вас є 3 вузли JBoss, тоді перейдіть по одному на кожного. У мене був би розділ Redis (master + slave) на окремих вузлах, і нехай дозорний керує відмовою.
Звідси йдеться про підключення JBoss / Jedis для використання Sentinel для управління інформацією та з'єднаннями. Оскільки я не використовую те, що швидкий пошук виявляється, що джедіс має підтримку, просто потрібно його правильно налаштувати. Деякі приклади, які я знайшов, перебувають у пошуках прикладу джедіса з Sentinel та https://github.com/xetorthio/jedis/isissue/725, в якому йдеться про JedisSentinelPool
маршрут використання басейну.
Коли Sentinel виконує відмову, клієнти будуть відключені, і Джедіс буде (повинен?) Впоратися з повторним підключенням, запитуючи Сентинелів, хто поточний господар.