Быстрый механизм микросервисов Node.js для запуска облачных функций с низкой задержкой. Панель администратора включена.
Изучите документацию »
Сообщить об ошибке · Запросить функцию
Boltz Engine — это быстрый и кластеризованный механизм микросервисов Node.js, запускающий экземпляры с холодного старта за 100 мс, а последующее взаимодействие с функциями в нормальных условиях составляет менее 10 мс. Экземпляры виртуальных машин V8 используются для разделения контекстов и позволяют создавать код как автономные микросервисы, совместимые с облачными сервисами. Многопоточность означает, что ваши экземпляры масштабируются по всему кластеру по всем ядрам вашего ЦП. API-интерфейс администратора позволяет вам управлять Boltz из включенного интерфейса администратора.
Загрузите со страницы выпусков, а затем запустите файл start.sh или start.bat, чтобы установить и запустить Boltz.
Или извлеките из bsnk/boltz-engine
в Docker Hub и выполните следующие действия:
Создайте файлы config.json и secrets.json — их можно скачать из выпуска на странице выпусков.
Поместите их в папку, здесь будут boltz-data
Запустите образ докера с помощью
$ docker run --publish 5000:5000 --publish 8000:8000 -v /boltz-data:/boltz -v /boltz-data:/secrets/ -v /boltz-data:/database -v /boltz-data/sandbox:/sandbox/ bsnk/boltz-engine:latest
Вы можете изменить эти папки по своему вкусу и настроить порты, которые они используют, в config.json и в команде запуска. Вероятно, вам также следует использовать версию Bolz, например 1.1.0
вместо последней, чтобы гарантировать, что ошибки не появятся в рабочей среде. /boltz — это место, где внутри контейнера будет искать файл config.json, а остальное можно настроить в соответствии с документацией.
Boltz позволяет создавать экземпляры виртуальных машин для получения и обработки веб-запросов, а также тома для хранения кода и конфигураций, а также позволяет временно сохранять данные на виртуальный диск. Все изменения удаляются, когда экземпляр или том необходимо перезагрузить.
Пакеты загружаются из package.json и устанавливаются в изолированные папки в файловой системе хоста. Они доступны всем экземплярам, использующим тот же том в том же процессе.
Рекомендуется использовать Boltz Engine для простых проектов микросервисов, которые впоследствии можно масштабировать с помощью подходящего облачного продукта. Он имеет низкие накладные расходы и низкую потребность в обучении, что позволяет вам сосредоточиться на функциональности вашего проекта, а не настраивать его для запуска на облачной платформе, когда она достаточно легка для локальной обработки. Это также очень быстро: результаты на вашем локальном компьютере выдаются менее чем за 10 мс вместо тысяч миллисекунд при обычных облачных функциях. Кроме того, его легко использовать благодаря включенному интерфейсу администратора.
У двигателя Boltz есть несколько проблем, в том числе:
Большой размер установки пакета из-за реализации изолированных программных программ node_modules для отдельных томов.
API администратора использует базовую аутентификацию, что означает, что вам придется перезапустить сервер, чтобы изменить пароль.
Используя экземпляр GCP Cloud Shell, функции было поручено повторить параметр запроса name
с восклицательным знаком, и она выполнила следующее:
Использование одного рабочего процесса: 4500-5000
запросов в секунду при задержке 50ms
.
Использование четырёх рабочих процессов: 5500-6000
запросов в секунду при задержке 4-8ms
.
Используя ту же функцию с 1 воркером, мы можем добиться 1000
одновременных подключений, выполняющих 200,000
запросов с задержкой около 100ms
и 5600rps
.
Boltz принимает запросы на улучшение движка или веб-интерфейса, которые находятся в веб-репозитории здесь. Он использует машинописный текст с набором правил Google eslint, поэтому постарайтесь сохранять последовательность и поддерживать его производительность.
Когда вы будете готовы распространить свои изменения, вам необходимо убедиться, что веб-файлы находятся в public
каталоге, в противном случае просто запустите веб-интерфейс в режиме разработки вместе с движком.
© bsnk-dev, 2021 г.
Настоящим бесплатно любому лицу, получившему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), предоставляется разрешение на работу с Программным обеспечением без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение. публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
Вышеупомянутое уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ В ДЕЙСТВИЯХ ПО КОНТРАКТУ, ПРАВОНАРУШЕНИЮ ИЛИ ДРУГИМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ОТ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.