Микросервис оптимизирует обмен данными между сервисами

Микросервис оптимизирует обмен данными между сервисами
Микросервис оптимизирует обмен данными между сервисами - wonderlane @ Unsplash

Теоретически LMS может послать сообщение в тему с идентификатором пользователя и местоположением AMS, которая заинтересована, потребляет это сообщение и обновляет свою собственную базу данных.

На данном этапе вы не создали микросервисы. Вы создали распределенную БД с возможной согласованностью. Это не то, на чем обычно строятся микросервисы.

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

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

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

Таким образом, когда местоположение меняется, единственное, что нужно сообщить, - это служба определения местоположения. Все остальное может спросить, когда ему будет интересно.

В записи о продаже будет указано место, откуда была совершена продажа. Он запрашивается только один раз. Когда составляется запись.

Это сохраняет полномочия каждой микрослужбы и позволяет избежать дублирования информации и ненужного общения.

Если у вас есть несколько служб, расположенных в разных местах, тогда, конечно, распределите эту БД. Обеспечьте избыточность. Но не просите каждый микросервис быть частью этого.

Архитектура, управляемая событиями, и микросервисы - это разные животные. Но они обе решают проблему взаимодействия между вещами.

Использование одного из них для решения проблем, которые решает другой, означает, что вы дублируете работу и путаете людей. Они решают проблему по-разному, и у каждого есть своя ниша. Их можно использовать вместе в одном проекте, но не для решения одной и той же проблемы.

И если кто-то сказал вам, что для решения проблемы необходимо что-то из перечисленного, он либо пытался вам что-то продать, либо провел слишком много времени, слушая кого-то, кто пытался. Никогда не думайте, что вам всегда что-то нужно. Узнайте, для чего они нужны.

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - Микросервисы. Взаимодействие между сервисами (Теория)

Прикрепленное видео 2 - Микросервисы: Коммуникации через очередь сообщений. Часть 1


LetsCodeIt, 5 января 2023 г., 23:15