Что-то я искал, но не может найти прямой ответ на это:Microservice базы данных совместно с другими службами
Для данной услуги, если есть два экземпляра этой службы, развернутая на два машины, они одни и те то же самое постоянное хранилище или у них есть отдельные магазины с некоторым механизмом синхронизации (master/slave, clustering)?
E.g. У меня есть OrderService, поддерживаемый MySQL. Мы получаем много заказов, поэтому мне нужно масштабировать эту услугу, поэтому мы развертываем второй OrderService. Откуда берутся его данные?
Это может показаться глупым, но для меня каждое обсуждение заставляет казаться, что служба и база данных - это упакованные единицы, которые развернуты вместе. Но в нескольких дискуссиях упоминается, что происходит при развертывании второй службы.
, не зная особенностей поставщика, если ваш единственный экземпляр имеет webservice + базу данных, любое горизонтальное масштабирование (то есть добавление большего количества экземпляров) будет дублировать существующую установку, а это значит, что каждый из них имеет свой собственный дискретный хранилище данных. единственный способ обойти это - разделить и масштабировать данные и веб-сервисы самостоятельно или масштабировать по вертикали (добавить еще хрюкать в существующий экземпляр) –
Правильно, все, что имеет смысл.Но в контексте «микросервиса», должна ли БД быть распределена между различными экземплярами службы для масштабирования, независимо от службы, или если БД должна быть сопряжена с сервисом, что делает каждый развертываемый блок действительно независимым? В моей голове я склонялся к последнему, чтобы масштабирование обеих частей происходило автоматически, вместо того, чтобы масштабировать DB независимо для трафика n сервисов. – MikeG
, тогда вы застряли в проблеме того, как синхронизировать данные между экземплярами. не простая задача. –