Что такое Moleculer?

Moleculer - это быстрый, современный и мощный микросервисный фреймворк для Node.js. Он поможет вам построить эффективные, надежные и масштабируемые сервисы. Moleculer предоставляет множество возможностей для создания и управления микросервисами.

Возможности

  • Асинхронный код на базе промисов (async/await compatible)
  • концепция запрос-ответ
  • поддержка событийной архитектуры с балансировкой
  • встроенный реестр сервисов и их динамическое обнаружение
  • запросы с распределением нагрузки & события (round-robin, random, использование cpu, задержка, шардинг)
  • устойчивость к отказам (Circuit Breaker, Bulkhead, Retry, Timeout, Fallback)
  • система плагинов и middleware
  • поддержка версионирования сервисов
  • поддержка потоков
  • поддержка миксинов на уровне сервисов
  • встроенное кэширование (Memory, MemoryLRU, Redis)
  • подключаемые логгеры (Console, File, Pino, Bunyan, Winston, Debug, Datadog, Log4js)
  • подключаемые транспорты (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)
  • подключаемые сериализаторы (JSON, Avro, MsgPack, Protocol Buffer, Thrift)
  • подключаемые валидаторы параметров
  • несколько сервисов на узле/сервере
  • архитектура без ведущего узла, все узлы равны
  • валидация параметров fastest-validator
  • встроенные метрики с отчётами (Console, CSV, Datadog, Event, Prometheus, StatsD)
  • встроенные трассировщики с отчётами (Console, Datadog, Event, Jaeger, Zipkin)
  • официальный API шлюз, доступ к БД и множество других модулей…

Насколько быстро?

Мы потратили много часов, чтобы улучшить работу Moleculer и создать самый быстрый микросервис для Node.js.

Локальный Benchmark Удаленный Benchmark

Проверьте результаты на своем компьютере! Просто клонируйте этот репозиторий и запустите npm install && npm start.

Посмотрите наши результаты.

Versioning

До тех пор, пока Moleculer не достигнет релиза 1.0, критические изменения будут выпускаться в новых минорных версиях. Например 0.13.1, и 0.13.4 будут обратно совместимыми, но 0.14.0 будут иметь критические изменения.

Node.js support

Moleculer следует за релизными циклами Node.js, это означает, что требуется версии не ниже 12.