В этой статье речь пойдет об отказоустойчивости системы микросервисов и о том, как ее обеспечить. Мы рассмотрим шаблон проектирования Circuit Breaker и сравним его с шаблоном Bulkhead.
Читать далее «Отказоустойчивость микросервисов: шаблон Circuit Breaker»
Spring Cloud
Конкретный пример в банке:
1. Один микросервис служит гейтвеем, в нем используется:
implementation("org.springframework.cloud:spring-cloud-starter-gateway") implementation("org.springframework.cloud:spring-cloud-kubernetes-fabric8-config")
2. Конфиги хранятся в Kubernetes ConfigMaps/Secrets, нет Spring Cloud Configuration сервера. Для работы с конфигами во всех остальных микросервисах такие зависимости:
implementation(group = "org.springframework.cloud", name = "spring-cloud-starter-bootstrap", version = "3.1.8") implementation(group = "org.springframework.cloud", name = "spring-cloud-kubernetes-config", version = "1.1.10.RELEASE")
И все, больше использования Spring Cloud в кластере Kubernetes нет.
Ниже же описан именно Spring Cloud:
- Eureka, client-side балансировка нагрузки (не используется)
- Spring Client API Gateway (используется)
- Spring Cloud Configuration Server (не используется)
- Отказоустойчивость, шаблон Circuit Breaker (не используется)
Spring Cloud Configuration Server
Для одного Spring Boot приложения нормально хранить настройки в локальном application.properties. Но если приложений несколько (микросервисов), и они используют общие настройки, то неплохо бы их вынести в одно общее место. И это можно сделать.
Читать далее «Spring Cloud Configuration Server»
Spring Cloud API Gateway
В этой статье продолжим дорабатывать предыдущий пример с Eureka и client-side load balancing — добавим в него Spring Cloud API Gateway.
Читать далее «Spring Cloud API Gateway»
Микросервисы: Eureka и client-side Load Balancing
В этой статье рассмотрим пример с двумя микросервисами. Обнаруживать друг друга они будут с помощью Eureka. Кроме того, рассмотрим, как запускать микросервисы в нескольких экземплярах и балансировать нагрузку на микросервис (со стороны клиента).
Читать далее «Микросервисы: Eureka и client-side Load Balancing»