Taobao FED

分类:Node.js

浅谈 Node.js 和 PHP 进程管理

众所周知,PHP 占据了服务端编程语言的半壁江山,正如汪峰在音乐圈的地位一般。随着 Node.js 逐渐走上服务端编程的舞台,关于 PHP 和 Node.js 孰优孰劣的争论也不曾间断。 垄断性的市场份额足以佐证 PHP 的优秀。并且 HHVM 虚拟机、PHP 7 的革新,也给 PHP 带来了跨越式的性能突破。然而,当我们为语言层面的性能差异喋喋不休时,却往往忽略了 Web 模型在性能表现中的权

yield 和 yield*

最近在看 koa 的中间件实现时,总是看到 yield* next 这种用法,觉得很困惑。下面是学习成果。 代理 yield我们先来看看原生语法中,代理 yield(delegating yield)的含义和用法。 首先是下面的代码(普通的 yield): 123456789101112131415161718192021function* outer() { yield 'be

管理 node 版本,选择 nvm 还是 n?

很多同学在选择 node 的版本管理工具时,可能第一时间就直接使用了 nvm,一般不会再去调研另一个工具 n,更没有闲情去了解这两者的特性和差异。毕竟工具能用就行,没必要搞清其运作机制。 是的,我也不例外,然而直到有一天…… 引子我本机安装着 nvm,而 node 本来一直运行在 0.x 的老版本上。后来为了跑 ES6,我将 node 切换到 4.x 的版本,并且把老版本给删掉了。 然后我就碰

HTML 压缩服务治理

缘由笔者最近在研究如何实现页面 HTML 及内联 JS/CSS 的实时压缩功能。 首先笔者尝试了在前端模块中扫描内联的 JS/CSS 并压缩,这样还可以集成至前端模块的上传工具中。观察了一段时间发现这样无法处理模板中的 JS/CSS,造成很多遗漏的 JS/CSS 不能压缩。 于是笔者转而考虑对页面进行实时 HTML 压缩,这次考察了坑过许多 Node.js 开发者的 html-minifier

当我们谈论 cluster 时我们在谈论什么(下)

上篇文章讲解了 Node.js 中多进程部署时遇到的各种问题,那么实际的线上项目中到底是如何利用多进程,如何保障各个 worker 进程稳定性的呢,又是如何利用 cluster 模块 fork 子进程,父子进程间又是如何实现通信的呢?本篇就来一一揭晓。 负载均衡回忆一下上篇中提到的最初 Node.js 多进程模型,多个进程绑定同一端口,相互竞争 accpet 新到来的连接。由于无法控制一个新的连

Node.js 常见网络错误信息

1.介绍熟悉 Node.js 的同学一定见过 ETIMEDOUT、EADDRINUSE 等错误提示,那么这些错误信息到底是什么呢?答案其实很简单,因为 Node.js 底层使用的是 glibc 库,这些错误信息都是 glibc 库在 socket 连接时使用的 connect 函数中定义的错误类型,当然,v8在使用glibc库时也会加入一些自定义的错误类型,但许多错误情况还是和glibc中的定义

当我们谈论 cluster 时我们在谈论什么(上)

Node.js 诞生之初就遭到不少这样的吐槽,当然这些都早已不是问题了。 1、可靠性低。2、单进程,单线程,只支持单核 CPU,不能充分的利用多核 CPU 服务器。一旦这个进程崩掉,那么整个 web 服务就崩掉了。 回想以前用 php 开发 web 服务器的时候,每个 request 都在单独的线程中处理,即使某一个请求发生很严重的错误也不会影响到其它请求。Node.js 会在一个线程中处理

timer 的优化故事

前段时间 Node.js 发布了新版本 4.0,其中涉及到一个更新比较多的模块,那就是下面要介绍的 timer 模块。 timers: Improved timer performance from porting the 0.12 implementation, plus minor fixes (Jeremiah Senkpiel)#2540, (Julien Gilli)nodejs/n

Node.js 探秘:初识单线程的 Node.js

前言从Node.js进入人们的视野时,我们所知道的它就由这些关键字组成 事件驱动、非阻塞I/O、高效、轻量,它在官网中也是这么描述自己的。 Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model th

致想用 Node.js 的你

Node.js,09 年这个集成了 Google V8 JavaScript 引擎和一个底层 I/O API 的项目,如今项目无数,大企业也纷纷尝试。 Node.js 有如得到了金陵才子一般,忽然间就在大街小巷中风靡开来,诱人的滋味感觉谁都想咬一口,虽然其他语言的酸葡萄理论开始蔓延,但是依旧没有影响到它的推广和发展。在强大的 PHP 和稳定的 Java 之中,慢慢的发芽并占有了一席之地。 虽说一