Я запускаю службы Spring Boot в AWS ECS с помощью CloudMap. Использование Java 11 и Spring Boot 2.2.1.RELEASE
S(1)
и S(2)
являются точными копиями службы, интенсивно использующей ЦП, а C
вызывает их как часть обслуживания нескольких параллельных запросов. C
не привязан к ресурсам, поэтому я не хочу создавать больше его экземпляров. Вызовы выполняются HTTP / REST с использованием com.konghq:unirest-java:jar:3.6.00
, который, в свою очередь, использует httpcomponents:httpclient:jar:4.5.11
Вот небольшая диаграмма:
Multiple Parallel Requests ----> C (10.1.12.25) ---------> S(1) (10.1.178.143)
\
\---> S(2) (10.1.118.82)
Использование Cloudmap в качестве каталога служб, когда I dig <service-name>
, он возвращает оба IP-адреса в ответе.
;; ANSWER SECTION:
<service-name>. 60 IN A 10.1.178.143
<service-name>. 60 IN A 10.1.118.82
Поскольку C - это только один экземпляр, S (1) получает 100% запросов от C. Это заставляет меня думать, что C каким-то образом использует только один из IP-адресов, зарегистрированных как.
Можно ли заставить C
использовать ОБЕИХ IP-адреса для вызова <service-name>
без использования балансировщика нагрузки? Может быть, настроить что-то в Unirest и / или HttpClient?
Заранее спасибо.
PS: Это мой первый вопрос, так что будьте любезны, если не правильный тег, et c. ; -)