TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.74K subscribers
Post #777 1.15K
День шестьсот тридцать девятый. #BestPractices #IDEALS
Принципы Разработки Микросервисов: IDEALS вместо SOLID. 4/7
E – Ориентированность на события (Event-Driven)
Архитектура микросервисов предназначена для создания серверных сервисов, которые обычно активируются используя один из следующих вызовов:
1. HTTP-вызов (к REST сервису)
2. RPC-вызов, такой как gRPC или GraphQL
3. Асинхронное сообщение, которое проходит через очередь в диспетчере сообщений.

Первые два обычно являются синхронными, и HTTP-вызовы наиболее распространены. Часто сервисам необходимо вызывать другие сервисы, и во многих случаях это взаимодействие является синхронным. Если вместо этого мы создадим (или адаптируем) участвующие сервисы на подключение и получение сообщений из очереди, мы создадим архитектуру на основе событий.

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

Микросервис, управляемый событиями
Буква E в IDEALS советует нам стараться моделировать микросервисы, управляемые событиями, потому что они с большей вероятностью будут соответствовать требованиям масштабируемости и производительности современных программных решений. Такой дизайн также способствует слабой связанности, поскольку отправители и получатели сообщений - микросервисы - независимы и не знают друг о друге. Надёжность также повышается, потому что конструкция может справляться с временными отключениями микросервисов, которые позже могут обработать помещённые в очередь сообщения.

Но микросервисы, управляемые событиями, также известные как реактивные микросервисы, могут создавать проблемы. Обработка активируется асинхронно и происходит параллельно, возможно, требуя точек синхронизации и корреляции сообщений. Дизайн должен учитывать ошибки и потерянные сообщения: часто необходимы корректирующие события и механизмы отмены изменений данных. Кроме того, должен быть продуман пользовательский опыт в транзакциях, обращённых к пользователю, чтобы держать конечного пользователя в курсе о прогрессе или неудаче транзакции.

Продолжение следует…

Источник:
https://www.infoq.com/articles/microservices-design-ideals/
More from @netdeveloperdiary
  1. Sep 26, 2026День 2796. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Продолжение Начало Три…
  2. Sep 25, 2026День 2795. #ЗаметкиНаПолях #AI Рабочий процесс с Copilot для .NET. Начало Проблема с позиц…
  3. Sep 24, 2026День 2794. #Оффтоп #Здоровье Сегодня будет необычный пост. Завтра в Москве стартует конфер…
  4. Sep 23, 2026День 2793. #ЗаметкиНаПолях #SQL 10 Редких Возможностей SQL, Которые Стоит Знать Каждому. Ч…
  5. Sep 22, 2026День 2792. #ЗаметкиНаПолях #SQL 10 Редких Возможностей SQL, Которые Стоит Знать Каждому. Ч…
  6. Sep 21, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 22 сентября(уже завтра!) в 1…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →