Автор оригинала: 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/ Отказ