javascript
NodeJS作为Web架构中间层的使用
截至2016年12月,中國(guó)網(wǎng)民規(guī)模已達(dá)7.31億。傳統(tǒng)的網(wǎng)站系統(tǒng)是否能夠支撐得起如此龐大的且不斷增長(zhǎng)的用戶訪問并且為用戶提供體驗(yàn)友好的頁(yè)面?
一、傳統(tǒng)的前后端:
二、傳統(tǒng)的前后端分離問題:
性能問題:
1、渲染、數(shù)據(jù)都在客戶端做,影響性能;
2、需要等待資源到齊才能進(jìn)行,會(huì)有短暫白屏與閃動(dòng),尤其是網(wǎng)頁(yè)由js生成的體驗(yàn)更差;
3、在低速網(wǎng)絡(luò)情況下體驗(yàn)更差;
重用問題:
1、模版無(wú)法重用,造成維護(hù)上的麻煩與不一致;
2、邏輯無(wú)法重用,前端的校驗(yàn)后端仍須在做一次;
跨終端問題:
1、業(yè)務(wù)太靠前,導(dǎo)致不同端重復(fù)實(shí)現(xiàn);
2、邏輯太靠前,造成維護(hù)上的不易;
即使使用CDN可以提高網(wǎng)站的響應(yīng)速度,但是面對(duì)以上問題,尤其是用戶關(guān)心的頁(yè)面體驗(yàn)問題,傳統(tǒng)的網(wǎng)站架構(gòu)應(yīng)對(duì)起來(lái)依然是捉襟見肘。這里提供一種使用NodeJS作為中間件的解決方案。
?
三、重新定義的前后端:
在服務(wù)器和瀏覽器之間增加了一個(gè)中間層
1、Node.js
Node.js是一個(gè)Javascript運(yùn)行環(huán)境。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。Node.js是單進(jìn)程、單線程運(yùn)行機(jī)制,通過事件輪詢(event loop)來(lái)實(shí)現(xiàn)并發(fā)操作,而且性能很好。
使用NodeJS作為Web中間層的優(yōu)勢(shì):
a、跨系統(tǒng)、跨終端均可重用頁(yè)面數(shù)據(jù)校驗(yàn)、邏輯代碼,無(wú)需因?yàn)樾孪到y(tǒng)、終端的接入而重寫校驗(yàn);
b、只在中間件中做一次數(shù)據(jù)校驗(yàn),避免了前端做數(shù)據(jù)校驗(yàn)的同時(shí)后端也要做校驗(yàn)的重復(fù),在有效保證數(shù)據(jù)的有效性的同時(shí)降低了團(tuán)隊(duì)整體的工作量;
c、處理數(shù)據(jù)邏輯,解放了前端既要做頁(yè)面渲染又要寫復(fù)雜的邏輯,使得頁(yè)面開發(fā)人員專注于頁(yè)面渲染,不僅使得分工更為明確,項(xiàng)目協(xié)作效率更高,更重要的是快速響應(yīng)頁(yè)面使得頁(yè)面加載更快,用戶體驗(yàn)更好,避免了瀏覽器長(zhǎng)時(shí)間顯示空白頁(yè)面的不友好體驗(yàn);
更多可能:
1)適用于高并發(fā)、短事務(wù)性數(shù)據(jù)請(qǐng)求處理的應(yīng)用場(chǎng)景;
以下是nodejs處理請(qǐng)求提供web service服務(wù)與java對(duì)比:
Nodejs的高性能以及顯著的io優(yōu)勢(shì)為架構(gòu)提供了高可伸縮性。
2)技術(shù)框架:Sails 提供了建立任何規(guī)模的 web 應(yīng)用所需要的所有功能,特別適合對(duì)數(shù)據(jù)實(shí)時(shí)更新有較高要求的應(yīng)用場(chǎng)景;Meteor框架是 Node.js 上非常出色的全棧框架,可以用它構(gòu)建純Javascript 的實(shí)時(shí) Web 和 手機(jī)應(yīng)用;Mean 作為一款全棧的開發(fā)框架,幾乎代表了 Mongo DB,Express,Angular和?
Node.js 的組合,幾乎涵蓋了應(yīng)用開發(fā)的所有方面,其開箱即用的工具極大簡(jiǎn)化并加快了應(yīng)用的開發(fā),同時(shí)可用于任意大小和復(fù)雜度的應(yīng)用開發(fā)。
案例見:天貓、淘寶等(中間層);網(wǎng)易pomelo(服務(wù)端)
總結(jié)
以上是生活随笔為你收集整理的NodeJS作为Web架构中间层的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算方法 matlab,计算方法及其MA
- 下一篇: matlab支持向量机程序代做