Рубрики
Без рубрики

Быстрое введение в Node.js Microservices: SENECA.JS

Запустите несколько процессов узла и используйте те же службы в процессе с помощью Node.js Microsebies Architecture Toolkit, Seneca!

Автор оригинала: Ivan Jovanovic.

Что такое архитектура микровидсов?

В наши дни все говорят о микросервисах, но что это на самом деле? Просто сказал, что архитектура микросервисов – это когда вы отделяете приложение в меньшие приложения (мы будем называть их услуги), которые работают вместе.

Я нашел одно потрясающее изображение, которое представляет разницу между приложениями монолита и микросервисов:

Я нашел одно потрясающее изображение, которое представляет разницу между приложениями монолита и микросервиса

Изображение выше объясняет это. С левой стороны мы видим одно приложение, которое все служит. Это размещено на одном сервере, и обычно трудно масштабироваться. С правой стороны мы видим архитектуру микросервиса. Это приложение имеет разные услуги для каждой функции. Например. ) И они могут быть на одном сервере. Но хорошо, что они могут быть распространены через разные серверы или контейнеры докеров.

Как я могу использовать NODEJS, чтобы сделать архитектуру Micreeervices?

Итак, вы хотите использовать Nodejs для создания архитектуры микросервисов? Это очень просто и потрясающе!

В моей карьере я использовал много рамки и библиотек для создания архитектуры микросервисов, даже созданных пользовательских библиотек (не делай этого!) – пока я не нашел Сенекайс Отказ Чтобы объяснить, что такое SENECA, я процитирую официальный сайт:

Seneca – это инструментарий микровидсов для Node.js. Это поможет вам написать чистый, организованный код, который вы можете масштабировать и развернуть в любое время.

Простой! По сути, это помогает вам обменять сообщения JSON между вашими сервисами и иметь хорошую и читаемую кодовую базу.

Сенека использует Действия Отказ Есть Определения действий и Действие звонков Отказ Мы можем хранить определения наших действий в наших услугах и позвонить им из любого сервиса. Для понимания того, как работает Seneca, вам нужно подумать об модульном рисунке и избежать желания поставить все в один файл.

Я собираюсь показать вам, как это работает!

Давайте играть!

Для этого учебника мы собираемся построить простое приложение. Ура!

Сначала давайте создадим простое приложение Nodejs:

npm init

Он пройдет через установку и установить это:

Введите описание изображения здесь

Затем мы установим Seneca:

npm install seneca --save

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

Прежде чем мы начнем, позвольте мне объяснить вам еще пару вещей. Там нет никаких конвенций о том, что мы должны поместить внутри наших объектов JSON, но я обнаружил, что многие люди используют один и тот же стиль. Я использую это один {Роль: «Назначение», CMD: «Действие»} И я рекомендую вам придерживаться этого. Создание нового стиля может привести к проблемам, если вы работаете в команде. Роль – это название группы функций и CMD – это имя действия. Мы используем это JSON, чтобы определить, какую функцию мы будем использовать.

Я создам два файла, index.js и Process.js Отказ index.js отправит запрос на Process.js С некоторыми номерами суммируйте его, затем возвращайте результат. Результат будет написан в консоли из index.js файл. Звучит неплохо? Давайте начнем!

файлы

Вот код из Process.js :

module.exports = function( options ) {
  var seneca = this;

  seneca.add( { role:'process', cmd:'sum' }, sum );

  function sum ( args, done ) {
    var numbers = args.numbers;

    var result = numbers.reduce( function( a, b ) { 
      return a + b; 
    }, 0);

    done( null, { result: result } );
  }
}

Здесь мы определяем функцию сумма и добавить в Сенеку, используя Seneca.add функция. Идентификатор – {Роль: «Процесс», CMD: «Sum»} Отказ сумма называет сделано функция и отправляет объект результата. Функция SENECA возвращает объекты по умолчанию, но его можно настроить для возврата строки или номера тоже.

Наконец, вот код из index.js :

var seneca = require('seneca')();

seneca.use( './process.js' );

seneca.act( { role: 'process', cmd: 'sum', numbers: [ 1, 2, 3] }, function ( err, result ) {
  console.log( result );
} )

Как вы можете видеть, мы используем Seneca.use Сказать SENECA, что мы собираемся использовать Process.js Файл и что мы определили нашу функцию там. В следующих строках мы используем Seneca.act Чтобы вызвать функцию из Process.js Отказ Мы отправляем объект JSON с роль и CMD вместе с аргументами Числа Отказ Результат объекта возвращается, и он должен содержать наш результат. Давайте тестируем это:

node index.js
Результат функции

Woohoo, это работает! Это вернулось {Результат: 6} Объект, и это то, что мы ожидали!

Заключение

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

Я надеюсь, вам понравилось это введение и учебное пособие в SENECA.JS! Если вы хотите узнать больше об этом, вы можете проверить Сенекайс Веб-сайт и их страница API: http://senecajs.org/api/ Отказ

Я пишу статьи, как этот на http://ivanjov.com/ Отказ