Как синхронизировать данные между одинаковыми микросервисами?
===============================================================

 Прочитал книгу по микросервисной архитектуре, но не понял одну важную вещь, балансировку между одинаковыми сервисами.  
  

Предположим, у нас есть несколько одинаковых микросервисов, между которыми распределяется нагрузка, и в случае выхода из строя одного сервиса, работа приложения должна продолжаться как обычно.  
  

В процессе работы какие-то другие сервисы записывают данные в упомянутые выше. Как данные должны синхронизироваться между этими одинаковыми сервисами, ведь у каждого свое хранилище? Каждый из них должен иметь все данные, а не только те, которые в него записывались? Как осуществляется такая синхронизация?  
  

Подскажите, пожалуйста, куда копать. 

 Все, разобрался. Я неверно себе представлял отличия между микросервисом и инстансом микросервиса.  
  

Все инстансы одного микросервиса в большинстве случаев смотрят в одну БД (или replica set), а уже сама БД масштабируется отдельно от инстансов сервиса. 

 Сами микросервисы не хранят данные.  

У них общая БД.  

Или у них внутренняя синхронизация по шине сообщений.  

Или, что более практично - общая БД, затем синхронизация изменений по шине сообщений. 

 Видимо, куча "одинаковых" микросервисов - это инстансы одного и того же микросервиса. Всю кучу можно спрятать за прокси-сервис (nginx, HAProxy, etc.) или свой же самодельный проксирующе-балансирующий микросервис (раз уж сейчас тренд такой и все так прутся по микросервисам).  
  

Для синхронизации всего этого зоопарка можно пользовать брокер сообщений, например RabbitMQ.  
  

P.S. Настоятельно рекомендую ознакомиться вот с этим [манифестом](https://habrahabr.ru/post/258739/)