Я пытаюсь развернуть архитектуру своих микросервисов в рабочей среде.
Сейчас
У меня 15 услуг, 1 Фасадный слой,
Фасадный уровень вызывает службы, получает данные, объединяет их и генерирует окончательный результат.
Также службы звонят друг другу (редко, но да, они звонят друг другу).
Теперь я не хочу единой точки отказа.
Так
Я решил, что у меня будет 5 ящиков (5 серверов высшего класса).
A, B, C, D, E
А будет LVS (для балансировки нагрузки)
B & C разместит Фасадный слой.
Поэтому, когда пришел запрос на фасад, он будет поступать из A и балансировать нагрузку до B & C.
Теперь службы D & E размещают хосты (в каждом блоке есть все 15 сервисов).
Таким образом, блок B & C будет также содержать каждый экземпляр haproxy, поскольку, когда Facade Layer вызывает службы, он будет сбалансирован по нагрузке. каждая коробка будет действовать как активная для Фасадного слоя на той же коробке и пассивная для Фасадного слоя на другой коробке.
Но мой вопрос: как мне разрешить моим службам звонить друг другу?
Должен ли я использовать отдельный haproxy на коробке D & E? Должен ли я использовать один на B & C.?