Если у вас есть два микросервиса, для выполнения которых необходимо считывать и записывать одни и те же данные, проблема не в том, какую технику или технологию вы используете для этого (подключение к общей базе данных или предоставление REST API), а в том, почему это происходит на первом месте.
Прежде чем делиться данными, рассмотрите следующие два варианта:
Почему два отдельных микросервиса во-первых? Если они читают и записывают одни и те же данные, то они могут выполнять одну и ту же обязанность, и они должны быть одним микросервисом, а не двумя.
Служат ли данные одной ответственности или более? Если вы моделируете свои данные / базу данных так, чтобы они выполняли две обязанности, то вам нужны не только два микросервиса, но и две базы данных. Я не знаю ваш вариант использования, поэтому трудно сказать, но, например, если вы храните цену продукта и описание продукта в одной таблице, микросервисы как по ценам, так и по каталогам будут совместно использовать базу данных, когда на практике они только нужно поделиться ProductId.
Другая возможность заключается в том, что вам необходимо отделить модель записи от модели чтения. В этом случае у вас может быть один микросервис, управляющий бизнес-логикой c, который вызывает эволюцию (запись) модели, а другой микросервис будет хранить «копию» модели, оптимизированной для чтения. Этот шаблон (CQRS) имеет несколько преимуществ:
Вы можете оптимизировать и масштабировать конвейер чтения иначе, чем конвейер записи.
При необходимости читаемая модель может быть снабжена данными из нескольких моделей записи (представьте, что вы ищете и сортируете товары по названию, категории, цене, рейтингу и т. Д. c).