Я могу придумать следующие варианты:
1) Имейте несколько интерфейсов, каждый с разными портами.
2) Иметь несколько внешних интерфейсов, каждый с другим именем хоста, но с одним и тем же портом.
3) Иметь единый интерфейс с тем же именем хоста и тем же портом, используя списки управления доступом для маршрутизации на основе URI.
В настоящее время у нас есть 12 различных сервисов (микросервисов), которые мы хотим сбалансировать. Может немного вырасти.
Каковы веские причины выбрать любой из этих подходов?
1) Имейте несколько интерфейсов, каждый с разными портами.
Мне это кажется немного небрежным. Объединение нескольких веб-сервисов на один IP-адрес с разными портами кажется мне полезным только в том случае, если у вас нет свободных IP-адресов (в этом случае у вас, вероятно, есть другие проблемы)
2) Иметь несколько интерфейсов, каждый с другим именем хоста, но с одним и тем же портом.
Мне это кажется лучшим выбором. Каждый интерфейс должен быть привязан к разному IP-адресу, а затем каждый использует соответствующий сервер (ы).
3) Иметь единый интерфейс с тем же именем хоста и тем же портом, используя списки управления доступом для маршрутизации на основе URI.
Это тоже сработает, но помните, что если у вас один интерфейс, они в конечном итоге поделятся некоторыми ресурсами. Например, если вы установите параметр «maxconn» во внешнем интерфейсе, а затем существует много одновременных подключений к одной из служб, запросы для других служб могут оказаться в очереди.
В конечном итоге, я думаю, все сводится к тому, насколько много общего у отдельных интерфейсов друг с другом, и если вы хотите, чтобы их пределы подключения были общими. Если все сервисы тесно связаны и работают почти одинаково, вы можете выбрать №3, но если они на самом деле не связаны, я думаю, что №2 будет вашим лучшим выбором. По крайней мере, вы можете настроить их на отдельные IP-адреса сейчас и иметь интерфейс, который привязывается к нескольким IP-адресам, поэтому позже в будущем его легко разделить на несколько интерфейсов.