Posts Tagged "node.js"

一个周末掌握IT前沿技术之node.js篇<七>:Node.js与HBase

这时,陆地上升起了山一般的云,海岸成了一长条绿色的线,背后映衬着几座灰蓝色的小山。此时,海水已经变成了深蓝色,深得几乎发紫。
——《老人与海》


前面我们围绕着Node.js学习了新兴IT公司快速构建高性能的web应用服务产品会用到一些前沿技术元素(JavaScript、redis、Nginx、HTML5、JQuery、Ajax)。文中提供的每一个例程都希望你能亲手实现,每一个例程的设计都是为了帮助我们深入地理解这些前沿技术。如果这些都是你以前没有深入接触过的概念,现在你只花了两天的时间,通过实现例程理解并掌握了这些技术,那么你就是一个高效学习者,是网络时代最稀缺的人才。你的稀缺性并不是来自于你所掌握的前沿技术,而是来自于你下定决心出发时那坚实而又轻盈的步伐。在这个(xbtech.hr#gmail.com)邮箱中收到你的简历,是一件多么令人兴奋的事情!

这是本篇的最后一章,我们讨论云计算。在这一章里,我们将不去实现复杂的例程,更多的是介绍一些概念。我们会收集一些理解这些概念需要的资料,本章链接中都是很新或者很经典的相关学习材料,希望大家都点过去看一看。云计算是在互联网高速发展的技术需求驱动中一些服务端网络服务技术的进步。人类的进步,除了思想、体制、流程以外,最有推动力量的是工具的进步。云计算就是一些工具进步的合集。这些进步是系统性的,我们可以列出其中主要的一部分:
(1).硬件虚拟化可以更高效地利用硬件(VMware)。
(2).分布式文件系统可以存储海量信息(GFS/HDFS)。
(3).协同计算机制可以处理海量信息(MapReduce)。
(4).分布式数据库可以让海量结构化半结构化信息持久化(BigTable/Hbase)。
(5).分布式锁机制可以更高效地保证分布式异步逻辑的一致性(Chubby/ZooKeeper)。
云计算进步的实质是马克思提出的“按需供应”,是对一些稀缺资源“按需供应”高效利用,降低这些资源的边际成本。这些资源包括:存储资源,计算资源,结构化存储资源,流量带宽资源,信息流资源。…

Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<六>:Node.js与客户端模板引擎

窗外阳光明媚,深蓝的天,淡淡的云,还有北归的雁。


我们已经学习掌握了这么多的IT前沿技术元素,那么把他们系统地组织在一起,可以形成什么?学习和理解这一章中的例程,需要用到前面学到的所有知识。


六. Node.js与 客户端模板语言


用JavaScript编写服务器程序有一个很大的好处,那就是因为网页客户端程序也使用JavaScript,所以服务器和客户端可以相互重用部分数据处理的逻辑。比如说,第三章中曾使用过的模板引擎nTenjin,我们将它引入到网页之中,这样的话我们的网页客户端也具有了模板的处理能力。

在第三章中,我们已经可以在服务端处理网页模板并实现类似PHP的动态网页功能。为什么这里还要让网页客户端来处理模板呢?那是因为,在现代高性能服务器架构中,我们希望前端服务端所做的逻辑处理越少越好。一些面向客户端的计算,包括一些图片处理、文字处理、样式处理等,我们希望由客户端来完成。面向大数据的计算则交给云端完成。甚至于我们希望,前端服务端只提供高速的动态数据呈现服务。下图就是我们本章要实现的高性能服务器架构:

在第三章的例程5中,服务端JavaScript逻辑解析nTenjin模板,并根据传入的数据生成HTML动态网页。我们要让解析模板和生成网页的计算在网页客户端中完成,服务器需要告诉网页,模板是什么,给模板传入的数据是什么。下面我们搭建一个RESTful-API服务器为网页客户端的Ajax请求提供模板和数据。


6.1 RESTful-API …
Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<五>:Node.js与Nginx

早上好!一夜的休息让我们精神饱满。窗外阳光满满,微风轻轻。让我踏上征服IT前沿技术的旅程。

昨天我们学习了JavaScript以及Node.js的基本特性、连接数据库、服务端模板和RESTful-API,今天我们要将这些点系统地组织架构起来,搭建轻轻松松处理数万用户的高性能的web应用服务。首先我们需要用到一个神器,它叫Nginx。

在互联网服务器架构中,我们可以经常听到LAMP(Linux+Apache+Mysql+PHP/Python/Perl)架构。它最早出现在1998年,是一种非常优秀的架构。有一个绿色工具XAMPP可以帮助你一键部署一个LAMP环境。

XAMPP下载地址:{官网}

在web2.0时代,这是最流行的架构环境。然而随着技术的发展,这种架构逐渐地被超越被取代。Nginx拥有超越Apache的卓越性能;有了更方便的redis和更强大的HBase,我们不再需要把什么数据都存在Mysql中;我们正在学习的Node.js比PHP更强大,比Python/Perl更专注于网络开发。似乎唯一不能取代的就是Linux。只是我们在两天学习过程中,完全不需要搭建一台Linux服务器。相信只要在编译的时候加几个参数,一台高性能的web应用服务器,完全可以运行在一个Android手机或iPad上面。

题外讨论:《变化》
变化是唯一的不变,我们要用发展的眼光看问题。一直以来LAMP是最好的服务器架构,它在性能、开发成本、部署成本等各方面确实优于同时代的其他一些技术。是否听说过tomcat、Servlet,asp.net甚至于IIS。虽然这些技术也不乏使用者,存在就有它的理由。有一些全世界都在等(world wide
Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<四>:Node.js与Restful API

从长远来看,一个组织唯一可持续的竞争优势,就是比对手更好更快的【学习能力】。如果你一鼓作气,和我们一起学习到这一章,现在已是深夜。这章内容并不难,例程也很简单,但是很重要。这章会告诉我们,为什么Node.js更适合现代服务器架构。让我们喝杯咖啡,把这章学完。

“互联网”越来越是API和服务,而不是网站、应用、和网页。看完上一章,你可能觉得在实现服务器模板方面,Node.js并没有太多超越HTML内嵌式动态网页语言的地方,那么,作为web-service服务器将是Node.js最好的用武之地。我们不准备去深究什么是web-service以及它的各种描述规范。因为现在,我们不用再去深入地了解RPC、SOAP、UDDI、WSDL等等概念,我们只需要知道RESTful就可以了。经过技术的发展,REST(REpresentation State Transfer)作为最优秀的web-service协作规范,简化了客户端和服务器的实现,强大功能,可扩展性好,安全可靠。所以2000年Roy Fielding提出的REST协作规范,已经成为了现在各种网络应用API的普遍原则。开放平台和开源工具都以提供RESTful-API为首要优先级。那么什么是RESTful-API呢?看看能不能理解这个比喻。有一堆兔子围着老狼问,“老狼老狼,几点了?”老狼看看太阳回答,“3点了!”兔子和老狼之间的接口就是RESTful-API。“老狼老狼,几点了?”就是客户端RESTful请求,“3点了!”就是服务器RESTful响应。老狼不管是那只兔子问的,这只兔子问过没问过,这就是无状态性。老狼在天黑以前只能回答兔子的问题,不能干别的,这就是分离性。专业一点的定义应该是这样的:

《REST规范》
总结REST有两个最重要的原则:
1.分离性;交互的客户端和服务器除了RESTful-API没有其他的依赖关系,限制了整个系统的复杂性,促进了各个部分的独立性。
2.无状态性:客户端和服务器之间的交互在请求之间是无状态的,从客户端到服务器的每个请求都必须包含理解请求所必需的信息。

满足上面规范的API接口就是RESTful-API。客户端常常通过HTTP方法(GET、POST、PUT、DELETE等),来发送API请求;服务端常常以JSON数据作为响应。做好web开发,我们必须非常深刻地理解http/TCP/IP协议栈。我们可以通过浏览器访问发送HTTP …

Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<三>:Node.js与服务端模板引擎

“变化”是永恒不变的。你并不能为“变化”做规划,但你可以提前为此做准备。真正的力量是放弃任何概念,振作起来面对改变。你能够适应你当前正处于的环境,这是最关键的。换句话说,接受变化总会发生这个实事,你要不停地学习。

《Node.js发展简史》
2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。
2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。
2011年7月,Node.js在微软的支持下发布Windows版本。
Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<二>:Node.js与redis

本篇极限学习内容一共有7章,第1章是内容最多、最理论性、最抽象的一章。如果能在3个小时内掌握第1章80%的内容,我们的学习效率是惊人的。现在是中午,小憩一会儿,我们继续!

后面的章节将越来越工程性,注重实践。本章将围绕Node.js介绍现在流行的各种数据库模型,并对其中一种进行上机实验。在此之前,似乎有必要介绍一下我们实验开发环境的搭建。

《windows下Node.js开发环境的搭建》
由于历史原因,即使是开发人员,平时使用的操作系统也多是windows。为了快速开发我们的产品,我们不需要单独搭建一个Linux环境。
1. 下载并安装windows版安装程序:“node-v0.6.14.msi”,一路next,直到完成。

下载地址:{官网} {

Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<一>:Node.js与javascript

当今企业间的竞争,本质上是学习速度的竞争。在这样一个信息过载的时代,技术人员往往淹没于各种大量出现的新技术、新概念、新名词之中,应接不暇。然而这些新技术大部分出自于美国。有一个问题被严肃地提了出来:是跟随?还是超越?在一个闲适的周末,阳光满满,泡上一壶绿茶,借着清新的茶香,我们将学习一下近些年被IT领域密切关注的一些前沿技术。用周末的两天时间,我们将围绕Node.js为中心,学习JavaScript、redis、Nginx、HBase、JQuery、Ajax、HTML5等等这些可以构成新兴IT公司的技术元素,通过周末两天的学习,掌握这些技术元素的核心概念并可以将它们应用IT产品的技实现中。如果你的绿茶已经泡好,那么就让我们开始吧!

上面提到的这些技术元素之所以被密切关注,是因为它们可以帮助新兴IT公司以较低的开发部署成本,获得高性能的web应用服务的快速实现。“快速”、“低成本”、“高性能”是这些技术元素的目的,也是技术进步的要求,是新兴IT公司快速发布并迭代产品的技术需求,我们将反复提到。我们假定读者具有一定编程经验,懂得任意一门编程语言,了解IP/TCP网络的5层结构,http协议。我们将深入分析各个概念模型,上机实践每一个例程,并理解每一行代码的运行机理,浏览每一个链接。通过两天的学习,希望我们可以获得“用低成本的硬件资源和简单的开发方式,搭建高性能的web应用服务”的能力。

Google一下什么是

Read the rest of this entry »
 

无觅相关文章插件,快速提升流量