阿里云 SDK for NodeJS 是為 NodeJS 開發(fā)者提供使用阿里云各項服務的統(tǒng)一入口,由阿里云UED團隊負責開發(fā)維護。目前集成了OCS(Memcached), OSS, RDS(MySQL) 三項阿里云服務。代碼地址:https://github.com/aliyun-UED/aliyun-sdk-js
使用阿里云 OCS SDK for NodeJS 接入阿里云 OCS 將會變得非常簡單。當你通過試用或者購買獲得阿里云 OCS 服務的實例,即對應的 ocsKey, ocsSecret 后。使用如下代碼:
// 獲取阿里云SDK實例
var ALY = require(‘aliyun-sdk’);
// 創(chuàng)建 OCS 的 memcached 實例
// 其中,host 為實例的 ip 地址
var memcached = ALY.MEMCACHED.createClient(11211, host, {
username: ocsKey,
password: ocsSecret
});
// 向 OCS 中寫入數據
memcached.add(‘hello’, ‘world’, function(err, data) {
// 如果寫入數據錯誤
if(err) {
console.log(‘add error:’, err);
return;
}
// 寫入數據成功,打印返回值
console.log(‘add success:’, data);
});
通過以上幾行代碼,我們就能非常簡單的接入并使用 OCS 的服務了。寫入后讀取也同樣非常簡單,如下:
// 向 OCS 中查詢數據
memcached.get(‘hello’, function(err, data) {
// 如果查詢錯誤或者失敗
if(err) {
console.log(‘get error:’, err);
memcached.end();
return;
}
// 如果查詢成功,打印返回值
console.log(‘get success:’, data.val.toString());
});
就像訪問本地運行時內存中的對象一樣簡單,這體現了 NodeJS 開發(fā)便捷性和 OCS 的易用性。但是不僅僅如此,本文將為大家介紹 NodeJS 以及如何使用 NodeJS 和 OCS SDK 構建高效,可靠,可擴展的web應用后臺。
NodeJS 介紹
Node.js是一個可以快速構建網絡服務及應用的平臺 。該平臺的構建是基于Chrome’s JavaScript runtime,也就是說,實際上它是對Google V8引擎(應用于Google Chrome瀏覽器)進行了封裝。
Node 本身運行 V8 JavaScript。什么是 V8?V8 JavaScript 引擎是 Google 用于其 Chrome 瀏覽器的底層 JavaScript 引擎。很少有人考慮 JavaScript 在客戶機上實際做了些什么?實際上,JavaScript 引擎負責解釋并執(zhí)行代碼。Google 使用 V8 創(chuàng)建了一個用 C++ 編寫的超快解釋器,該解釋器擁有另一個獨特特征;您可以下載該引擎并將其嵌入任何 應用程序。V8 JavaScript 引擎并不僅限于在一個瀏覽器中運行。因此,Node 實際上會使用 Google 編寫的 V8 JavaScript 引擎,并將其重建為可在服務器上使用。太完美了!既然已經有一個不錯的解決方案可用,為何還要創(chuàng)建一種新語言呢?
NodeJS 的特點
- 高性能
V8引擎本身使用了一些最新的編譯技術。這使得用 Javascript 這類腳本語言編寫出來的代碼運行速度獲得了極大提升,卻節(jié)省了開發(fā)成本。對性能的苛求是Node的一個關鍵因素。 Javascript是一個事件驅動語言,Node利用了這個優(yōu)點,編寫出可擴展性高的服務器。NodeJS 采用了一個稱為“事件循環(huán)(event loop)”的架構,使得編寫可擴展性高的服務器變得既容易又安全。提高服務器性能的技巧有多種多樣。NodeJS 選擇了一種既能提高性能,又能減低開發(fā)復雜度的架構。這是一個非常重要的特性。并發(fā)編程通常很復雜且布滿地雷。NodeJS 繞過了這些,但仍提供很好的性能。
- 非阻塞
Node采用一系列“非阻塞”庫來支持事件循環(huán)的方式。本質上就是為文件系統(tǒng)、數據庫之類的資源提供接口。向文件系統(tǒng)發(fā)送一個請求時,無需等待硬盤(尋址并檢索文件),硬盤準備好的時候非阻塞接口會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問, 直觀,易懂。尤其是對于熟悉 onmouseover、onclick 等 DOM 事件的用戶,更有一種似曾相識的感覺。