У разрушения микросервисов нет жестких правил.Это зависит от нескольких факторов.По моему опыту, это в основном зависит от этих двух ключевых факторов.
- точка зрения зависимостей
- точка зрения бизнеса
Давайте вернемся к нашей идее разрушения микросервисов.Мы хотели бы развернуть наши сервисы как независимые модули таким образом, чтобы доступность каждого была независимой.Таким образом, мы работаем над достижением цели: один сервис не работает, значит только один недоступен в это время.Другие доступны.
Теперь давайте рассмотрим два фактора, которые я упомянул.
(1) Зависимости (модели, библиотеки, базы данных и т. Д.)
Давайте рассмотрим простой сценарий, просто чтобы понять идею.Представьте, что есть платформа онлайн-ритейлера.Там у нас есть набор независимых (сегрегированных) таблиц БД для хранения данных запасов, связанных с одеждой.И это так, что труднее сломать дальше (например: различная сегрегация для женской одежды, мужской одежды и т. Д.).
Итак, здесь, когда мы собираемся разрабатывать API-сервисы, мы можем принять решение предоставить отдельный микросервис для одежды (поскольку у нас есть набор независимо разделенных таблиц для этого раздела), но не разбивать какие-либодалее как разделы одежды (так как не могут больше разделять эти таблицы).Обратите внимание, что здесь, поскольку у нас есть отдельное разделение БД для одежды, любой сбой БД для этого разделения не повлияет на другие службы (и наоборот).И просто подумайте, что произойдет, если мы сломаем сервисы дальше (отдельные микросервисы для женской одежды / мужской одежды и т. Д.).Поскольку у нас есть одна общая сегрегация БД для всех, если эта общая зависимость исчезнет, все службы будут отключены.Так что нет смысла пытаться прорваться дальше, так как нет увеличения доступности.
(2) Бизнес
Я приведу приведенный выше пример здесьтакже.Давайте возьмем бизнес-операции, такие как клиентские платежи.Поскольку это важная часть бизнеса, большую часть времени мы можем сделать вывод, что собираемся сделать отдельный микросервис для платежей.Несколько минут недоступности клиентских платежей могут стоить бизнесу миллионы.Поэтому мы хотели бы сделать его отдельным независимым микросервисом и уделить ему особое внимание, когда речь идет о развертывании.
Наконец, поскольку вы упомянули о Facebook, я полагаю, что эти микросервисы сломаются..
- Аутентификация / Авторизация
- Управление данными пользователя
- Управление медиа-контентом
- Обмен сообщениями
- Звонки
- Платежи
- Служба push-уведомлений
- Платформа больших данных и т. Д.