Микросервисы Spring Boot - обработка изменений, влияющих на другие микросервисы

Я просто хочу кратко рассказать о том, что я пытаюсь сделать, прежде чем задавать вопрос

Я пытаюсь создать микросервисы с использованием весенней загрузки - где мне нужно использовать многие функции Spring Cloud Netflix, такие как обнаружение служб (Eureka), прерыватель цепи (Hystrix), интеллектуальная маршрутизация (Zuul) и балансировка нагрузки на стороне клиента (лента) и т. Д. Я планирую использовать контейнеры докеров для развертывания и управления с помощью таких инструментов, как docker compose, docker swarm (или kubernetes).

В этой конфигурации - у нас есть 3 микросервиса (предположим), служба A, служба B и служба C, это независимые микросервисы, разработанные разными разработчиками, при условии, что эти разработчики не синхронизированы, разработчик1 вносит некоторые изменения в службу A, что может нарушает функциональность двух других служб B и C (они для какой-то цели вызывают службу A), но службы B и C не знают об изменениях, внесенных в службу A. ** Как эффективно справляться с такими возможными ситуациями? ** - заранее спасибо


person Siddu H    schedule 03.03.2017    source источник
comment
Простое решение: никогда не вносите критических изменений в свой API. Чтобы гарантировать это, вы можете, например, использовать контракты, ориентированные на потребителя.   -  person dunni    schedule 03.03.2017


Ответы (1)


Никогда не нарушайте обратную совместимость. Если изменения приведут к нарушению обратной совместимости, выполните версию службы.

Я писал в блоге о том, как зарегистрироваться и обнаружить несколько версий службы с использованием Spring Cloud Netflix Eureka и Ribbon на http://tech.asimio.net/2017/03/06/Multi-version-Service-Discovery-using-Spring-Cloud-Netflix-Eureka-and-Ribbon.html.

person ootero    schedule 06.03.2017