Существует два подхода, которые могут использоваться для взаимодействия с сервисом при использовании SOA для больших систем, развернутых в облаке, таких как AWS.Обнаружение службы, балансировка нагрузки и подход объединения пулов
Имейте каждый сервисный кластер за внутренним локтем. клиент создает пул соединений с соответствующими elb и elb делает балансировку по кругу.
Идет с подходом к поиску услуг, как netflix eureka.
В настоящее время мы используем 1-й подход, при котором каждый кластер службы позади внутренней УДР и клиенты общаются через СОБ, так что каждый экземпляр клиента должен поддерживать только один пул т.е. с Elb конечной точки.
У меня есть следующие сомнения относительно второго apporach.
- Есть ли преимущество при переходе на обнаружение услуг и интеллектуальную клиентскую архитектуру, где клиент обслуживания знает все экземпляры службы (через службу eureka или эквивалент) и выполняет внутреннюю балансировку нагрузки?
- В приведенном выше примере как работает объединение пулов? В настоящее время каждый клиентский экземпляр должен поддерживать ровно 1 пул соединений, т. Е. С локтем соответствующей службы. Но с богатым клиентом каждый клиент будет иметь все конечные точки экземпляра службы, с которыми можно напрямую связаться. Соединение по каждому запросу будет неэффективным, и так много пулов подключений (1 для каждого экземпляра службы) для каждого клиента является избыточным я думаю.
Нужна помощь или предложения по двум вышеуказанным вопросам.