16 四 2011, 10:15上午
javascript:
by

发表点儿看法吧

CNodejs聚会之nodejs初探(一)

 

image

今天nodejs在betacafe举行活动。

早就久闻其大名—-这玩意所渲染的和nosql的东西结合起来前后端通吃,统一逻辑一套代码前后端都可以跑的概念,让人口水真流啊。哈哈,真的那样的话多省事儿,可以少跟很多人打交道,直接去取key/value形式的数据然后我们直接实现展现就可以了,流程可以流畅起来~~YYYY~~,继续YY,嘿嘿。

 

下面是我的笔记。

 

首先,代替后端直接用事件驱动的脚本来写后端逻辑可以由抽象变得形象一些。容易理解,开发难度降低。

 

性能方面的优势。

  • 单线程(single-thread)
  • 非阻塞式IO(non-blocking)
  • V8(runtime)

 

  单线程:

    • 单线程:多个请求占用一个线程
    • 多线程:一个请求占用一个线程

image

Nginx(单线程)vs Apache(多线程)

单线程占用更少的内存让系统有更好的性能。但是同时要认识到,这个问题单线程的可靠性差,一个请求异常了一个线程全挂。这里就需要考虑一 下实时性的系统就不能用nodejs来玩了吧?

 

非阻塞:

    • 非阻塞:事件状态保留,等到事件响应以后再执行事件上绑定逻辑。同时执行一下个监听事件。
    • 阻塞:事件状态不保留,等到事件响应以后再执行事件上绑定逻辑。下一个监听事件被中断。

image

Nginx(非阻塞)vs Apache(阻塞)

非阻塞会带来了那些问题呢?这个我还在想.

 

V8:

google大神的东西,把动态脚本的执行效率提升到一个新的高度。这样才有nodejs,commonjs这种东西的产生,让js可以脱离浏览器实现更多的东西。

 

回来做了下功课把nodejs装得玩了玩。

  1. wget,下taz文件。
  2. tar xzf解压下文件。
  3. 我的EC2 instance上没装openssl,直接 ./configure –without ssl
    image
  4. 然后就make,这个时间之长让人发指,花了我25分钟。后来我在nodejs群里面请教了一下前辈。原来nodejs在编译的时候要把v8引擎也要编译一次。
    image
  5. make install安装,一排排的.py刷屏~
    image
  6. 接下来就可以写自己的nodejs程序了
    image

 

ps:

电信从业者 @flyinweb 分享了"一个基于物联网的实时监控项目实践""

他们这个项目用

  • socket.io
  • connection pool
  • bayeux implement
  • multi-node
  • websocket client
  • node-mysql
  • log4js-node

这些开源组件集成起来了,讲了很多干货。

这玩意对我感触很大,我们太多工作花在自己造轮子上了,自已写底层框架,写具体逻辑。这点要向传统软件业的前辈们学习,多做集成少开发。当然 web app在国内刚刚火起来,能给我们做集成的框架,中间件太少了,这也是一个矛盾~~

总之,好多新东西要学习啦,加油~~~

*name

*e-mail

web site

给点儿指导意见:


 
  • 我在说

  • 我在看

  • 新文章

  • 文章归档