Я читал о весенней облачной архитектуре и технологиях (таких как eureka, hystrix прерыватель цепи), используемых для предотвращения простоя вашего приложения из-за сбоя некоторых ваших микросервисов. И в целом весеннее облако предлагает использовать Spring Cloud Gateway в качестве точки входа для всех микросервисов. Итак, я задаюсь вопросом, как обеспечить отказоустойчивость самого весеннего облачного шлюза? Как я вижу прямо сейчас, если эта точка входа выйдет из строя, то все эти технологии, такие как eureka и hystrix прерыватель цепи, будут недоступны, поскольку они реализованы на уровне облачного шлюза spring. Теперь, когда шлюз весеннего облака не работает, все клиенты не смогут получить доступ ко всем службам за шлюзом весеннего облака. Так как же быть в подобных ситуациях?
Честно говоря, я не думаю, что это напрямую связано с Spring Cloud Gateway. Вопрос скорее в том, «Как развернуть высокодоступное Java-приложение?» (SCG — это приложение Spring).
Ответ зависит от платформы, которую вы используете.
Большинство платформ IAAS предоставляют собственные балансировщики нагрузки инфраструктуры, такие как ALB/ELB в AWS.
Платформа PAAS обычно включает готовые LB, например. Cloud Foundry или Kubernetes могут сделать это за вас.
DNS, вероятно, не лучший выбор по причинам, которые вы описали - TTL и кэширование клиента. Кроме того, у DNS на самом деле нет способа проверить работоспособность вышестоящей службы. Таким образом, использование DNS требует балансировки нагрузки на стороне клиента, когда клиент должен быть умным и аннулировать кеш/повторить попытку, если запрос не удался.