Кластеризация

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

Архитектура монолита

В этой версии все сервисы работают на одном узле, как монолит. Отсутствует задержка сети и модуль транспорта. Местные вызовы самые быстрые.

Архитектура монолита

Микросервисная архитектура

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

Микросервисная архитектура

Смешанная архитектура

В этом случае мы запускаем согласованные сервисы в группе на одном узле. Такой подход сочетает в себе преимущества архитектуры монолита и микросервисов. Например, если сервис posts вызывает сервис users несколько раз, эти два сервиса следует разместить на одном узле для сокращения сетевых задержек между ними. Перегруженные узлы можно просто масштабировать.

Смешанная архитектура

Tip

ServiceBroker сначала пытается вызвать локальные экземпляры сервиса (если существует) для уменьшения задержки сети. Эта логика может быть отключена в настройках брокера с помощью установки preferLocal: false свойства в ключе registry.

Как выбрать

Выбираете между монолитом и микросервисом при разработке приложения? Выберете монолитный подход, потому что его легко развивать? Предпочитаете микросервисную архитектуру, потому что она надёжна и масштабируема? С Moleculer вам не нужно выбирать. Можно получить лучшее из двух подходов. Во время разработки приложения загружайте все сервисы на одним узле. Таким образом можете быстро отладить и проверить логику приложения. Когда будете готовы, просто распространите свои сервисы на нескольких узлах. Не волнуйтесь, для этого не нужно менять код в сервисах. Просто укажите транспорт, разместите каждый сервис на отдельном узле и всё готово. Ваше приложение работает на микросервисной архитектуре.