快速 Node.js 微服務引擎,用於以低延遲運行雲端功能。包括管理儀表板。
探索文件 »
報告錯誤·請求功能
Boltz 引擎是一個快速的叢集式 Node.js 微服務引擎,從冷啟動到啟動實例只需 100 毫秒,後續與功能的交互作用在正常情況下會低於 10 毫秒。 V8 VM 執行個體用於分隔上下文,並允許您將程式碼建置為可與基於雲端的服務互通的自託管微服務。多執行緒意味著您的執行個體可以在整個叢集的所有 CPU 核心上進行擴充。管理 API 可讓您從附帶的管理介面管理 Boltz。
從發布頁面下載,然後運行 start.sh 或 start.bat 檔案來安裝並運行 Boltz。
或從 Docker Hub 上的bsnk/boltz-engine
拉取並設定以下步驟:
建立 config.json 和 Secrets.json - 您可以從版本頁面上的版本下載它們
將它們放在一個資料夾中,這裡是boltz-data
運行 docker 映像
$ 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 和啟動命令中使用的連接埠。您可能還應該使用 Boltz 版本(例如1.1.0
而不是最新版本,以確保生產中不會出現錯誤。 /boltz 是在容器內尋找 config.json 檔案的位置,其餘部分可以根據文件進行自訂。
Boltz 可讓您建立 VM 執行個體來接收和處理 Web 要求,以及建立磁碟區來儲存程式碼、配置,並讓您將資料暫時儲存到虛擬磁碟。當需要重新載入實例或磁碟區時,所有變更都會被清除。
套件從 package.json 載入並安裝在主機檔案系統上的沙盒資料夾中,它們與同一進程上使用相同磁碟區的任何實例共用。
Boltz 引擎的建議用途是用於簡單的微服務項目,這些項目稍後可以透過適當的雲端產品進行擴展。它的開銷和學習曲線較低,讓您可以專注於專案的功能,而無需將其設定為在雲端平台上運行(當它足夠輕以在本地處理時)。它的速度也非常快,不到 10 毫秒即可在本機上給出結果,而不是普通雲端函數上的數千毫秒。此外,它還易於使用附帶的管理介面。
Boltz 引擎存在一些問題,包括:
由於實作了單獨的捲 node_modules 沙箱,所以包裝安裝大小較大。
管理 API 使用基本驗證,這意味著您必須重新啟動伺服器才能變更密碼。
使用 GCP Cloud Shell 實例,函數的任務是使用感嘆號重複name
查詢參數,其執行如下:
使用單一工作進程:每秒4500-5000
請求,延遲50ms
。
使用四個工作進程:每秒5500-6000
請求,延遲為4-8ms
。
使用 1 個工作線程的相同功能,我們可以實現1000
並發連接,執行200,000
請求,延遲約為100ms
和5600rps
。
Boltz 正在接受拉取請求以改善引擎或 Web 介面,位於此處的 Web 儲存庫中。它使用帶有 Google eslint 規則集的 typescript,因此請盡量保持一致並保持高效能。
當您準備好分發變更時,需要確保將 Web 檔案放在public
目錄下,否則,只需在開發模式下與引擎一起執行 Web 介面即可。
版權所有 2021 bsnk-dev
特此免費授予任何獲得本軟體和相關文件文件(「軟體」)副本的人不受限制地使用本軟體,包括但不限於使用、複製、修改、合併的權利、發布、分發、再授權和/或銷售軟體的副本,並允許向其提供軟體的人員這樣做,但須滿足以下條件:
上述版權聲明和本授權聲明應包含在本軟體的所有副本或主要部分中。
本軟體以「現況」提供,不提供任何明示或暗示的保證,包括但不限於適銷性、特定用途的適用性和不侵權的保證。 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE軟體.