Архитектура микросервисной базы данных для веб-приложения Ecommerce - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь создать проект электронной коммерции только для изучения весенней загрузки и гибернации, и я думаю о микросервисном шаблоне с шестью основными службами: 1. клиент 2. заказ 3. продукт 4. поставщик 5. оплата 6 Служба .UI Я сталкиваюсь с проблемой при принятии решения о том, помещать ли все таблицы в одну базу данных, совместно используемую всеми микросервисами, что, очевидно, делает Db склонной к несогласованности, или к go стандартному способу создания отдельных БД для всех микросервисов.

Я не могу понять, что если я go со вторым выбором отдельной базы данных микросервиса, то как будут обновляться записи в таблице заказов и таблице клиентов. По дальнейшим находкам я обнаружил Saga Pattern .

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

1 Ответ

0 голосов
/ 04 апреля 2020

Если вы используете микросервисную архитектуру, лучше использовать базу данных для каждого сервиса. Затем вы должны использовать шаблон SAGA для обработки распределенных транзакций. Возможно, вы должны использовать RabbitMq или Kafka в качестве брокера сообщений для связи с каждым микро-сервисом. Это даст вам лучшее представление о шаблоне Saga link

Поскольку вы используете несколько баз данных, реализация запросов, объединяющих данные из нескольких служб, более не проста. Чтобы обслужить это, есть образец, названный Сегрегация Ответственности Запроса Команды (CQRS). Прочитайте эту ссылку, чтобы получить представление ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...