1. 程式人生 > >前端到node後臺的十萬個啥東西,綜合指南針!

前端到node後臺的十萬個啥東西,綜合指南針!

哈嘍!大家好 又來到了··· 跑錯片場了,啊哈 大家好 我就是你們喜歡了加討厭日久就生情的布萊恩·奧復託傑森張;

話說:“基礎打多深 樓就能建多高”; 一陣春風吹的哦是精神百倍,忽然一想天天吹牛b node怎麼好,咱們搞搞他得牆角吧!搞搞再補上才說明技術水準嘛; nodejs劣勢and解決方案(solution);記得上學時候我在這個詞上邊寫著 “色lu神” 現在一想好生怪異驚訝

1,node 天生的非同步操作優勢弊端,記憶體要求,畢竟它喊一嗓子大家一起幹活空間不能太小哇,解決方法很粗暴 擴容 加錢買硬體嘛!慶幸這個資本還是很便宜滴,而且隨著硬體發展會越來越便宜。

2,預設不支援多核,我們偉大的開發者們已經搞定了解決方案 cluster 可以解決;

3,預設不支援伺服器叢集,現在用node-http-proxy 可以解決;

(node-http-proxy是一個用於Node.js的HTTP可程式設計代理庫,支援 websockets。它是適用於實現例如代理伺服器和負載均衡這樣的元件)

4,負載均衡方面 靜態由nginx處理 , 動態由nodejs處理;

5,災難恢復 比較成熟的forever(永遠;不斷地 聽著就專業)或者node-cluster;

框架方面呢

比較熱門: express,koa,hapi,以及express基礎之上的sails;

express:相比之下 完善,穩定,文件全,社群大,

koa:超前, 潮流, 666

hapi:複雜,大型程式 比較牛叉 so 不適合初學者;

來咱們先搞搞十萬個啥東西 come on,cope some knowleage(no雷之 - 知識) 這個註解我自己都深深折服了!

1、什麼是叢集

叢集(cluster)就是一組計算機,他們作為整體向用戶提供一組網路資源。這些單個的計算機系統就是叢集的節點(node)。一個理想的叢集是,使用者從不會意識到集群系統底層的節點,在他/她們看來,叢集是一個系統,而非多個計算機系統。並且集群系統的管理員可以隨意的增加和刪除集群系統的節點。

2、叢集的優點

<1>高擴充套件性

<2>高可用性HA:叢集中的一個節點失效,它的任務可傳遞給其他節點。可以防止單點失效

<3>高效能:負載平衡叢集允許系統同時接入更多的使用者

<4>高效能價比:可以採用廉價的複合工業標準的硬體來構造高效能的系統。

3、集群系統的分類

雖然,根據集群系統的不同特徵可以有多種分類方法,但是一般把集群系統分為兩類:

<1>高可用性(High Availability)叢集,簡稱HA叢集。

這類叢集致力於提供高度可靠的服務。就是利用集群系統的容錯性對外提供7*24小時不間斷的服務,如高可用的檔案伺服器、資料庫服務等關鍵應用。

負載均衡叢集:使任務可以在叢集中儘可能平均的分攤不同計算機處理,充分利用叢集的處理能力,提高對任務的處理效率。在實際應用中這幾種叢集型別可能混合使用,以提供更高穩定的服務,如在一個使用網路流量負載均衡的叢集中,就會包含高可用的網路檔案系統、高可用的網路服務。

<3>效能計算(High Perfervidmance  Computing)叢集,簡稱HPC叢集,也稱為計算叢集。

在這種叢集執行的是專門開發的並行應用程式,它可以把一個問題的資料分不到多臺計算機上,利用這些計算機的共同資源來完成任務,從而可以解決單機不能勝任的工作(如果問題規模太大,單機計算速度太慢)。

這類叢集致力於提供了單個計算機所不能提供的強大的計算能力。如天氣預報、石油勘探與油藏模擬、分子模擬、生物計算等。

4、什麼是高可用性(HA)

計算機系統的可用性(availability)是通過系統的可靠性(reliability)和可維護性(maintainability)來度量的。工程上通常採用平均無故障時間(MTTF)來度量系統的可靠性,用平均時間(MTTR)來度量系統的可維護性。於是可用性定義為:MTTF/(MTTF+MTTR)*100%

5、負載均衡伺服器的高可用性

為了遮蔽負載均衡伺服器失效,需要建立一個備份機。主伺服器和備份機上都執行High Availability監控程式,通過傳送諸如“I am alive”這樣的資訊來監控對方的執行狀況。當備份機不能在一定的時間內收到這樣的資訊時,它就接管主伺服器IP並繼續提供服務;當備份管理器又從主管理器收到“I am alive”這樣的資訊時,他就釋放IP地址,這樣的主管理器就開開始再次進行叢集管理的工作了。為在主伺服器失效的情況下系統能正常工作,我們在主、備份機之間實現負載集群系統配置資訊的同步和備份,保持兩者系統的基本一致。

6、HA的容錯備援運作過程

自動偵測(Auto-Detect)階段由主機上的軟體通過冗餘偵測線,經由複雜的偵聽程式。邏輯判斷,互相偵測對方執行情況,所檢查的專案有:主機硬體(CPU和周邊)、主機網路、主機作業系統、資料引擎以及其他應用程式、主機與磁碟陣列連線。為確保偵測的正確性,而防止錯我的判斷,可設定安全偵測時間、包括偵測時間間隔、偵測次數以調整安全係數,並且由主機的冗餘通訊連線,將所彙集的訊息記錄下來,以供維護參考。

自動切換(Auto-Switch)階段某一主機如果確認對方故障,則正常主機繼續進行原來的任務,還將依據各種容錯備援模式接管預先設定的備援作業程式,並進行後續的程式以及服務。

自動恢復(Auto-Recovery)階段  在正常主機代替故障機工作後,故障機可離線進行修復工作。在故障主機修復後,通過冗餘通訊線與原來主機連線,自動切換回修復完成的主機上。整個回覆過程完成有EDI-HA自動完成,亦可依靠預先配置,選擇回覆動作為半自動或不回覆。

7、HA三種工作方式

<1>主從方式(非對稱方式)

工作原理:主機工作,備機處於監控狀況;當主機宕機時,備機接管主機的一切工作,待主機恢復正常後,按使用者的設定以自動或手動方式將服務切換到主機上執行,資料的一致性通過共享儲存系統解決。

<2>雙機雙工方式(互備互援)

工作原理:兩臺主機同時執行各自的服務工作且互相檢測情況,當任一臺主機宕機時,另一臺主機立即接管它的一切工作,保證工作實時,應用服務系統的關鍵資料存放在共享儲存系統中。

<3>叢集工作方式(多伺服器互備方式)

工作原理:多臺主機一起工作,各自執行一個或幾個服務,各為服務定義一個或多個備用主機,當某個主機故障時,執行在其上的服務就可以被其它主機接管。


睡覺灑家又睡著了,這都是什麼鬼,我還是用通風所以懂得語言描述一下,啥子東西是叢集 就是買了一堆伺服器 這就是一個叢集,想了一想買一堆那得多少錢啊··· 廠家有解決辦法 阿里說我有錢 我買租給你們,老百姓解釋 一群伺服器就是他們說的那個 那啥; 高可用是啥? 分開 讀嘛 效能高啊 可用呢 天天都能用 我靠 太殘忍了; 天天讓人家幹活指定累啊 有的機器就熱了 不幹活了 so 就出現三種 工作方式,1 主從 就是一個機器幹活 後面有一個後備隊員; 主演病了替身上主演好了替身下來 就ok;第二種  兩個人一人負責一部分 主演表演替身演捱打部分,主演病了 替身就全演 病好了 倆人一起工作 所為你中有我 我中有你 日久生情 呃呃··· 第三種情況就是多人演一個角色 劇本大家都知道 兩個都病了 我還有替身 哎!大白話講的 嘔吐。。。 那些高大上的東西到我這裡一講完全成糞土啊··· 計算機屆的禍害··

說著說著教程也就到了 node安裝 沒啥講的 要是裝不上;那就不用學了 尤其windows上 跟安qq一個樣;還不會就上這個網址瞅瞅 http://www.runoob.com/nodejs/nodejs-install-setup.html; 

說一個小技巧,反正我之前不知道開啟node 各種cd 複製地址;或者直接放d盤裡面;想在想一想 確實 是個好辦法。。。


按住Shift按右鍵 就有這個選項; 之前俺是各種cd 太愚蠢了;

node 裡面有一個很實用的工具 執行node就不用 node ** node ** node ** 寫程式改一點東西就執行 太麻煩了;supervisor 這個東西 你更改什麼他都幫你重新整理重啟node; 缺點就是 你寫程式報錯了 他就一直報錯 必須關閉或者馬上改對了;

這麼下載? 你裝完node就有npm 版本不夠新舊升級 一行命令; 分享幾個常用的吧  省的來回找 麻煩、

npm -v #顯示版本,檢查npm 是否正確安裝

npm install express   #安裝express模組 
npm install -g express  #全域性安裝express模組 
npm list         #列出已安裝模組 
npm show express     #顯示模組詳情 
npm update        #升級當前目錄下的專案的所有模組 
npm update express    #升級當前目錄下的專案的指定模組 
npm update -g express  #升級全域性安裝的express模組 
npm uninstall express  #刪除指定的模組

一個簡單的伺服器;
var http =require('http');

http.createServer(function(request, response){// 傳送 HTTP 頭部 // HTTP 狀態值: 200 : OK// 內容型別: text/plain
	response.writeHead(200,{'Content-Type':'text/plain'});// 傳送響應資料 "Hello World"
	response.end('Hello World\n');}).listen(8888);// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8888/');

很簡單;服務執行在本季8888埠  就是localhost:8888 ;
  • 第一行請求(require)Node.js 自帶的 http 模組,並且把它賦值給 http 變數。
  • 接下來我們呼叫 http 模組提供的函式: createServer 。這個函式會返回 一個物件,這個物件有一個叫做 listen 的方法,這個方法有一個數值引數, 指定這個 HTTP 伺服器監聽的埠號。
建議大家能用常用 es6特性 用著用著就熟悉了 不用永遠看著那麼難;let 和 const 命令 可以讀一讀 還是有好多應該注意的內容。

訪問有個地址, 後臺給你資料,一個簡單小模擬就結束了;後期有了框架支援 就好比 js有了jq一毛一樣;寫起來更簡單;我也將拋棄之前的實驗 ,一步一步再來一遍!

feet on the ground; 腳踏實地;腳踏在堅實的土地上。比喻做事踏實,認真。學習做事 不浮誇;不沾沾自喜;浮躁只是不成熟的表現!