NodeMan介绍
????近年來,隨著nodejs的突飛猛進(jìn),node項(xiàng)目數(shù)量增長(zhǎng)迅猛,node項(xiàng)目完美的闡釋了“開箱即用”的理念。小到創(chuàng)業(yè)公司,大到阿里這樣的巨頭,背后均有node的身影。
? ? node項(xiàng)目基于Chrome的V8引擎,使用JavaScript(或者TypeScript)作為開發(fā)語言,本身就區(qū)別于傳統(tǒng)的Java、PHP網(wǎng)站(當(dāng)然,還有C#等等)。由于JavaScript的單線程、非阻塞等特性(如果不理解JavaScript的線程、進(jìn)程特性,建議該充充電啦),非常適用于網(wǎng)站的建設(shè)(I/O密集型應(yīng)用),不適用于CPU密集型應(yīng)用。
????那么,問題來啦!使用node啟動(dòng)的服務(wù)只能利用單核CPU(網(wǎng)上有大神做了多線程的模塊,不在考慮范圍),而我們現(xiàn)在大多數(shù)的服務(wù)器CPU核心數(shù)均不止一核,因此,需要我們手動(dòng)的去做負(fù)載均衡。常見的有兩種方式,1?手動(dòng)根據(jù)CPU數(shù)量來啟動(dòng)子進(jìn)程,并分配http請(qǐng)求,?2?啟動(dòng)多個(gè)node服務(wù)并監(jiān)聽同一端口,以競(jìng)爭(zhēng)的方式來處理http請(qǐng)求。
提示:這兩種負(fù)載均衡模式各有利弊,本文的主要目的不是為了講解負(fù)載均衡,因此,不做過多贅述,有興趣可以深入理解一下,傳送門:https://blog.csdn.net/hongchh/article/details/79898816????以上是nodeman項(xiàng)目產(chǎn)生的背景,下面來介紹一下nodeman項(xiàng)目解決的痛點(diǎn)。既然node服務(wù)只用一核CPU,那么何不購(gòu)買只有一核CPU的云服務(wù)器?每個(gè)服務(wù)器上部署一個(gè)node服務(wù),集群的穩(wěn)定性、健壯性以及之后的擴(kuò)展均表現(xiàn)的非常優(yōu)秀。此時(shí),痛點(diǎn)來啦,如果我要更新服務(wù)器運(yùn)行的代碼版本,那么我就要手動(dòng)的登錄每個(gè)服務(wù)器,之后停止服務(wù),pull代碼,手動(dòng)重啟。更糟糕的是,如果我的服務(wù)器很多,在執(zhí)行了一半的部署之后,發(fā)現(xiàn)這個(gè)版本有bug,Oh my god,回滾吧。
????因此,nodeman出現(xiàn)啦,話不多說,先上圖。
????從圖中可以看到,nodeman提供了以下十大功能:
自動(dòng)嗅探服務(wù)器上的node服務(wù),并添加管理
實(shí)時(shí)監(jiān)測(cè)node服務(wù)和代理服務(wù)的狀態(tài)(基于socket.io)
服務(wù)器的啟停控制(支持批量操作)
Git部署
Git定時(shí)部署(通常我們升級(jí)版本應(yīng)該在用戶量低的時(shí)候升級(jí),因此我們提供計(jì)劃任務(wù)部署功能,可自行選擇部署時(shí)間)
查看部署記錄,并支持回滾操作
證書生成(使用letsencrypt生成免費(fèi)的ssl證書)
證書部署(將生成的證書部署到node服務(wù)中,并重啟服務(wù))
證書每月自動(dòng)更新并部署(letsencrypt免費(fèi)證書的有效期限為三個(gè)月,因此,我們提供每月自動(dòng)更新證書功能)
郵件發(fā)送(國(guó)內(nèi)可選擇短信發(fā)送,主要用于計(jì)劃任務(wù)執(zhí)行后的通知,例如證書每月生成結(jié)果,Git定時(shí)部署結(jié)果)
以上十大功能為nodeman主要解決的需求,接下來會(huì)逐一介紹各個(gè)功能,以及如何實(shí)現(xiàn)和實(shí)現(xiàn)中踩到的坑。
提示:nodeman項(xiàng)目除了以上十大主要功能外還擁有一些定制功能,例如編輯node服務(wù)的配置文件等等,這些輔助功能在之后的介紹中不會(huì)列出。
測(cè)試地址:http://nodeman.iricbing.cn:8080
賬號(hào):admin@restmesh.com
密碼:123qwe
轉(zhuǎn)載于:https://www.cnblogs.com/danielWise/p/9910354.html
總結(jié)
- 上一篇: SWAT模型应用
- 下一篇: flash影响中文输入