p*2
2 楼
can some big cows offer a
relative deep summary about node.js?
不是big cow,也不deep,随便聊聊自己的感受。几个优点
1. 异步,支持高并发,避免多线程编程的各种苦逼问题
2. V8, 高性能
3. JS, 前端后端用一种语言搞定,非常方便
4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
能来说,node能比Java慢多少)
6. 前端的大趋势是SPA, MVC往browser里移, 后端退化为web service,所以传统的
MVC架构优势就大大减弱了
7. 很多协议本身就是基于JS和JSON的,比如restful, mongodb, elasticserch etc
。用node来做非常自然,不需要转换数据类型
因为前端没有选择的要使用JS,所以后端上同样的语言非常有诱惑力,使得看不出
rails和python的还有什么特别的优势,除了历史久,更成熟一些。
relative deep summary about node.js?
不是big cow,也不deep,随便聊聊自己的感受。几个优点
1. 异步,支持高并发,避免多线程编程的各种苦逼问题
2. V8, 高性能
3. JS, 前端后端用一种语言搞定,非常方便
4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
能来说,node能比Java慢多少)
6. 前端的大趋势是SPA, MVC往browser里移, 后端退化为web service,所以传统的
MVC架构优势就大大减弱了
7. 很多协议本身就是基于JS和JSON的,比如restful, mongodb, elasticserch etc
。用node来做非常自然,不需要转换数据类型
因为前端没有选择的要使用JS,所以后端上同样的语言非常有诱惑力,使得看不出
rails和python的还有什么特别的优势,除了历史久,更成熟一些。
p*2
3 楼
One thing I particularly want to understand is that since js is an
asynchronous, single threaded, event driven language, how the server side
scales when you only have one process but many asynchronous response events
waiting to be handled in that single thread. Do you experience any issues on
many concurrent users?
多进程可解决。
asynchronous, single threaded, event driven language, how the server side
scales when you only have one process but many asynchronous response events
waiting to be handled in that single thread. Do you experience any issues on
many concurrent users?
多进程可解决。
s*e
4 楼
多进程可解决??? what do you mean?
today js is asynchonous by nature. My question is about blocking in event
loop when there are many concurrent users. For example, for one server, if
200 concurrent users request the same service, even it takes 100 milli-
sec to handle the callback, then the user can wait for more than 20 secs max.
Cluster might be a solution for me. But one node cannot handle 200
concurrent users still bother me.
events
on
【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。
today js is asynchonous by nature. My question is about blocking in event
loop when there are many concurrent users. For example, for one server, if
200 concurrent users request the same service, even it takes 100 milli-
sec to handle the callback, then the user can wait for more than 20 secs max.
Cluster might be a solution for me. But one node cannot handle 200
concurrent users still bother me.
events
on
【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。
p*2
5 楼
max.
你这情况多线程又如何? 100 milli sec的时间花在了哪里?
【在 s******e 的大作中提到】
: 多进程可解决??? what do you mean?
: today js is asynchonous by nature. My question is about blocking in event
: loop when there are many concurrent users. For example, for one server, if
: 200 concurrent users request the same service, even it takes 100 milli-
: sec to handle the callback, then the user can wait for more than 20 secs max.
: Cluster might be a solution for me. But one node cannot handle 200
: concurrent users still bother me.
:
: events
: on
s*e
6 楼
I still do not know what you meant by multi-threaded. As said, js is single
threaded, asynchronous model. Did u mean web workers? I will be hesitating
to pay the penalty to use web worker for a small job like that. 100 milsec
means nothing, a simple file open can cost much more than that.
In servlet or similar model, each request will be handled by one single
thread, nobody blocks nobody.
threaded, asynchronous model. Did u mean web workers? I will be hesitating
to pay the penalty to use web worker for a small job like that. 100 milsec
means nothing, a simple file open can cost much more than that.
In servlet or similar model, each request will be handled by one single
thread, nobody blocks nobody.
p*2
7 楼
single
算了。你还是先好好看看node去吧。
【在 s******e 的大作中提到】
: I still do not know what you meant by multi-threaded. As said, js is single
: threaded, asynchronous model. Did u mean web workers? I will be hesitating
: to pay the penalty to use web worker for a small job like that. 100 milsec
: means nothing, a simple file open can cost much more than that.
: In servlet or similar model, each request will be handled by one single
: thread, nobody blocks nobody.
s*e
8 楼
haha... I spent 2 hours going through nodejs beginner guide this morning. I
do not think that damn book answers my doubts.
do not think that damn book answers my doubts.
c*d
9 楼
我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
(现在还有单核的吗?:))。
首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
做不到这点的。
events
on
【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。
单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
(现在还有单核的吗?:))。
首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
做不到这点的。
events
on
【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。
z*e
10 楼
一般而言
动态类型的语言,比静态类型的语言,要慢
慢很多,js和python还有groovy都是动态类型的语言
而且不仅是慢,开发复杂的东西时候,还容易错
因为ide很难帮忙纠错,鬼知道那个变量到底是什么东西
这两个其实也是python programmer最常见的抱怨
还有一个,非oo的语言,在多线程的表现上
往往很逆天,一个线程如果不是对象
我不知道该理解成什么东西
实际上大多数fp都不被设计用来做大的并发项目
多数都是给scientific nerd玩科学计算用的
比如r,就是华丽的单线程,用来做统计题是很快
但是用来做server,我很难理解该怎么写
nodejs用单线程,多个cpu得server怎么办?
不用?hpc里面随便都是几十个cpu,难道华丽滴扔掉不用?
单线程和异步能解决很多问题,但是一旦有一个任务时间超长
而且需要长期跟客户端保持连接,怎么办?
这个时候异步和单线程就很难办了
所以用来做web可能还不错,但是web毕竟太简单了
最后一个就是,jvm本身水平很高
sun的精华就在那里面,其它语言,包括oo语言
其核心vm或者用小菊花的说法,framework
都很难跟jvm相提并论,这就是轮子的差距
jvm跟其它语言的vm的差距,看制作人就知道了
jvm就是美帝的精华,python的核心就是那个荷兰人
美帝跟荷兰的差距,就是java跟python的差距
原谅我的偏见
冲击的方面看,我觉得coffeescript更简洁
而且从hiphop对于php的优化看
估计coffeescript还不是个头,估计后面还有变化
公孙大神还得继续结婚
动态类型的语言,比静态类型的语言,要慢
慢很多,js和python还有groovy都是动态类型的语言
而且不仅是慢,开发复杂的东西时候,还容易错
因为ide很难帮忙纠错,鬼知道那个变量到底是什么东西
这两个其实也是python programmer最常见的抱怨
还有一个,非oo的语言,在多线程的表现上
往往很逆天,一个线程如果不是对象
我不知道该理解成什么东西
实际上大多数fp都不被设计用来做大的并发项目
多数都是给scientific nerd玩科学计算用的
比如r,就是华丽的单线程,用来做统计题是很快
但是用来做server,我很难理解该怎么写
nodejs用单线程,多个cpu得server怎么办?
不用?hpc里面随便都是几十个cpu,难道华丽滴扔掉不用?
单线程和异步能解决很多问题,但是一旦有一个任务时间超长
而且需要长期跟客户端保持连接,怎么办?
这个时候异步和单线程就很难办了
所以用来做web可能还不错,但是web毕竟太简单了
最后一个就是,jvm本身水平很高
sun的精华就在那里面,其它语言,包括oo语言
其核心vm或者用小菊花的说法,framework
都很难跟jvm相提并论,这就是轮子的差距
jvm跟其它语言的vm的差距,看制作人就知道了
jvm就是美帝的精华,python的核心就是那个荷兰人
美帝跟荷兰的差距,就是java跟python的差距
原谅我的偏见
冲击的方面看,我觉得coffeescript更简洁
而且从hiphop对于php的优化看
估计coffeescript还不是个头,估计后面还有变化
公孙大神还得继续结婚
z*e
11 楼
多核和多cpu还是不一样
多核的单cpu server是多数,这个不否认
我不是很清楚nodejs怎么处理多核问题的
但是从你举例的cluster来看
其实还是单线程,遇到多个cpu的server就挂了
如果我们把标准放宽一点
假设所有的event的项目都搞定了
那么还有thread的项目
web和监控什么的,多数都是一个客户触发
然后后面跟着一套流程,这样一个东西
典型的event driven,这个传统上有工作流等东西来做类似的事
但是threads还是很有可能遇到的
比如游戏,开一个cs的局,这个时候搞单线程……
从另外一方面说,jvm上也有大量的异步处理
spring等framework都有annotation来作类似的事
但是好处在于,jvm没有放弃多线程
如果需要,随时可以回到真正的多线程上去
而且将来多cpu的server成为主流,这个如果有一天成为现实
我觉得也不是什么很奇怪的事
【在 c***d 的大作中提到】
: 我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
: 单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
: (现在还有单核的吗?:))。
: 首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
: 其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
: 后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
: scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
: node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
: 以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
: 做不到这点的。
多核的单cpu server是多数,这个不否认
我不是很清楚nodejs怎么处理多核问题的
但是从你举例的cluster来看
其实还是单线程,遇到多个cpu的server就挂了
如果我们把标准放宽一点
假设所有的event的项目都搞定了
那么还有thread的项目
web和监控什么的,多数都是一个客户触发
然后后面跟着一套流程,这样一个东西
典型的event driven,这个传统上有工作流等东西来做类似的事
但是threads还是很有可能遇到的
比如游戏,开一个cs的局,这个时候搞单线程……
从另外一方面说,jvm上也有大量的异步处理
spring等framework都有annotation来作类似的事
但是好处在于,jvm没有放弃多线程
如果需要,随时可以回到真正的多线程上去
而且将来多cpu的server成为主流,这个如果有一天成为现实
我觉得也不是什么很奇怪的事
【在 c***d 的大作中提到】
: 我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
: 单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
: (现在还有单核的吗?:))。
: 首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
: 其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
: 后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
: scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
: node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
: 以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
: 做不到这点的。
y*g
12 楼
太高级了 我看看明年能不能学会点儿
【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)
【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)
z*e
15 楼
我个人不喜欢笼统滴说前端和后端
说前端后端太容易误导了
3 tiers
应该是
客户端,web server和app server
后两个统称服务器端
趋势上看
客户端逐步变复杂,没有错,mobile在逐步赶上pc
web server逐步变成一个web service server,其实这个是进化了
不知道为什么总有人说是退化了,命令多了两个呢
不过这一块用某大牛说法就是不打粮食
开发的确变得越来越简单,因为逻辑被剥离出了这一层
剩下的crud等操作,无非就那点东西么
app server爆炸式增长,cloud, big data在这里聚集
这一块的增长已经呈现一种指数级的增长了
传统的db什么压根满足不了需求
jvm很多时候都不够用,不少开发人员需要去调整虚拟机参数才行
以前jee时代,这种事比较少
这一块就是某大牛说的打粮食的领域
现在有新的热点一波接着一波冲出来
【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)
说前端后端太容易误导了
3 tiers
应该是
客户端,web server和app server
后两个统称服务器端
趋势上看
客户端逐步变复杂,没有错,mobile在逐步赶上pc
web server逐步变成一个web service server,其实这个是进化了
不知道为什么总有人说是退化了,命令多了两个呢
不过这一块用某大牛说法就是不打粮食
开发的确变得越来越简单,因为逻辑被剥离出了这一层
剩下的crud等操作,无非就那点东西么
app server爆炸式增长,cloud, big data在这里聚集
这一块的增长已经呈现一种指数级的增长了
传统的db什么压根满足不了需求
jvm很多时候都不够用,不少开发人员需要去调整虚拟机参数才行
以前jee时代,这种事比较少
这一块就是某大牛说的打粮食的领域
现在有新的热点一波接着一波冲出来
【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)
p*2
16 楼
zhaoce大牛,我觉得node不应该跟java比,用途很不一样。node冲击的更多时ruby,
python这些。
还有就是多线程为什么一定要是OO的呢?感觉C里面多线程也多了去了。
python这些。
还有就是多线程为什么一定要是OO的呢?感觉C里面多线程也多了去了。
A*i
17 楼
多线程和OO有关系么?
pthread被赤裸裸的无视了,鼓吹java吹到这份上我到第一次见到
pthread被赤裸裸的无视了,鼓吹java吹到这份上我到第一次见到
z*e
18 楼
非大牛,担当不起,折寿
但是用c写多线程要自己去包装,很烦
java写多线程多容易,直接实现接口就好了
你用akka做也可以
多线程从来都是找合适的工具上
akka什么,tomcat什么也都是类似的多线程管理工具
自己去实现的,多半都有问题
你说得没错,主要是web server上有各种讨论
我觉得coffeescript蛮好
动态类型本身效率偏低,一旦做大,会遇到跟fb搞php一样的问题
不过现在写个web,尤其是小的website,是越来越简单了
唯一简单的部分,其它都在变复杂
【在 p*****2 的大作中提到】
: zhaoce大牛,我觉得node不应该跟java比,用途很不一样。node冲击的更多时ruby,
: python这些。
: 还有就是多线程为什么一定要是OO的呢?感觉C里面多线程也多了去了。
但是用c写多线程要自己去包装,很烦
java写多线程多容易,直接实现接口就好了
你用akka做也可以
多线程从来都是找合适的工具上
akka什么,tomcat什么也都是类似的多线程管理工具
自己去实现的,多半都有问题
你说得没错,主要是web server上有各种讨论
我觉得coffeescript蛮好
动态类型本身效率偏低,一旦做大,会遇到跟fb搞php一样的问题
不过现在写个web,尤其是小的website,是越来越简单了
唯一简单的部分,其它都在变复杂
【在 p*****2 的大作中提到】
: zhaoce大牛,我觉得node不应该跟java比,用途很不一样。node冲击的更多时ruby,
: python这些。
: 还有就是多线程为什么一定要是OO的呢?感觉C里面多线程也多了去了。
p*2
19 楼
JS这种语言,即使有了CS,跟Java这种大型语言还是根本没有可比性。很难做大,不过
倒是挺好玩的。编程这东西我一直感觉就是打游戏。不同的游戏路数也是不一样的。这
一年学了一个FP,又学了一个Async,对于思路的开阔很有帮助。对于做项目来说,很
难说哪个语言最好,不同的项目可以选用不同的语言,框架来实现。当然总体来说Java
的地位不用大牛你宣传,也是在那里的。我目前来说需要快速开发,所以Node很适合我
。感觉做异步的话,node确实要比其他语言方便很多。当然这一块我Java也没用过,
Ruby的EM用了一下,问题挺多。做异步的话也就不需要考虑多线程了,当然写code就要
很小心,注意了,不能block。
【在 z****e 的大作中提到】
: 非大牛,担当不起,折寿
: 但是用c写多线程要自己去包装,很烦
: java写多线程多容易,直接实现接口就好了
: 你用akka做也可以
: 多线程从来都是找合适的工具上
: akka什么,tomcat什么也都是类似的多线程管理工具
: 自己去实现的,多半都有问题
: 你说得没错,主要是web server上有各种讨论
: 我觉得coffeescript蛮好
: 动态类型本身效率偏低,一旦做大,会遇到跟fb搞php一样的问题
b*e
20 楼
It does not necessarily have to do with multi-process. The single process/
thread event loop model is good enough to handle concurrent accesses. It's
a mind model switch:
* an event handling unit maps to a thread;
* the event loop controller maps to the thread context switching scheduler.
Thinking about it this way, one should understand why node.js is in fact "
multi-threading" by design.
It's however true that one event loop can only use one CPU. To utilize full
CPU power of a multi-core server, we need the help of cluster.
Notably, One should not map nginx + node.js to apache + php. PHP handles
each request with a process, which is NOT the case for node.js.
events
on
【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。
thread event loop model is good enough to handle concurrent accesses. It's
a mind model switch:
* an event handling unit maps to a thread;
* the event loop controller maps to the thread context switching scheduler.
Thinking about it this way, one should understand why node.js is in fact "
multi-threading" by design.
It's however true that one event loop can only use one CPU. To utilize full
CPU power of a multi-core server, we need the help of cluster.
Notably, One should not map nginx + node.js to apache + php. PHP handles
each request with a process, which is NOT the case for node.js.
events
on
【在 p*****2 的大作中提到】
: One thing I particularly want to understand is that since js is an
: asynchronous, single threaded, event driven language, how the server side
: scales when you only have one process but many asynchronous response events
: waiting to be handled in that single thread. Do you experience any issues on
: many concurrent users?
: 多进程可解决。
y*u
23 楼
内部人士来说一下:现在做jvm就是人欧洲人的天下,毛子+西欧诸国
顺便有懂jvm内核的请pm我,可帮投简历
顺便有懂jvm内核的请pm我,可帮投简历
M*l
25 楼
问个很弱很弱的问题呀,刚用了一周的nginx和node,一直搞不清楚里面的protocal是
怎么回事哎,比如好像node那部分只支持http(没看见require https),但是nginx能
把https转化成http再call server?一直在console.log(req.protocol),总是显示
http哎
【在 c***d 的大作中提到】
: 我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
: 单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
: (现在还有单核的吗?:))。
: 首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
: 其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
: 后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
: scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
: node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
: 以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
: 做不到这点的。
怎么回事哎,比如好像node那部分只支持http(没看见require https),但是nginx能
把https转化成http再call server?一直在console.log(req.protocol),总是显示
http哎
【在 c***d 的大作中提到】
: 我的一点心得,最近工作中刚用到。刚懂点皮毛,不见得全对。
: 单线程不见得所有的requests都是一个线程/进程处理的,要不然多核cpu不浪费死了
: (现在还有单核的吗?:))。
: 首先node natively支持cluster http://nodejs.org/api/cluster.html。利用这个功能一个多核的机器上有多个node进程听同一个端口,OS 自动 load balance到多个进程,每个进程之间依然独立。
: 其次,一般要scale的时候不会直接让node做frontdoor,至少会放在nginx(或类似的)之
: 后。一个nginx后面可以挂很多node app servers。其实到了production,就算不考虑
: scale,一般也会至少一个nginx带俩node,这样deploy时可以无down time.
: node异步的好处是它以单线程的资源消耗在等待后面数据的时候(db or file),它还可
: 以接受并处理别的请求。而其他的framework如rails(早期版本,最新的也许可以)是
: 做不到这点的。
M*l
41 楼
我其实很想知道用户到底是http还是https过来的,但是测试的时候就算用https输出的
log也是http哎(req.protocol),不知道是不是nginx配置的不对。
update:好像弄明白了,就是我的nginx config不对,把443端口的都proxy到http://localhost了,所以就一直是http
【在 p*****2 的大作中提到】
:
: 那基本上就是scala了。
log也是http哎(req.protocol),不知道是不是nginx配置的不对。
update:好像弄明白了,就是我的nginx config不对,把443端口的都proxy到http://localhost了,所以就一直是http
【在 p*****2 的大作中提到】
:
: 那基本上就是scala了。
p*2
43 楼
牛
【在 M******l 的大作中提到】
: 我其实很想知道用户到底是http还是https过来的,但是测试的时候就算用https输出的
: log也是http哎(req.protocol),不知道是不是nginx配置的不对。
: update:好像弄明白了,就是我的nginx config不对,把443端口的都proxy到http://localhost了,所以就一直是http
j*x
44 楼
node就凭他纯正的async架构就值得起今天的地位
当然,除了这个也就没别的了;没必要大惊小怪,他能到的了ror python之类脚本语言
的程度完全实至名归
当然,除了这个也就没别的了;没必要大惊小怪,他能到的了ror python之类脚本语言
的程度完全实至名归
c*3
46 楼
Nood的异步是通过它的EventLoop来实现的。EventLoop只是把请求丢到线程池里去执行
。这和Java里的线程池有什么不同的吗?
【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)
。这和Java里的线程池有什么不同的吗?
【在 p*****2 的大作中提到】
: can some big cows offer a
: relative deep summary about node.js?
: 不是big cow,也不deep,随便聊聊自己的感受。几个优点
: 1. 异步,支持高并发,避免多线程编程的各种苦逼问题
: 2. V8, 高性能
: 3. JS, 前端后端用一种语言搞定,非常方便
: 4. CS, 吸收Python, Ruby的优点,使得写JS比Python, Ruby还简洁,清爽
: 5. 快速开发,对rails,python等冲击很大 (目前来看对Java确实没什么影响,如
: zhaoce大牛所说,Java本来就不适合做web的前端。不过很感兴趣如果做后端只是从性
: 能来说,node能比Java慢多少)
h*p
49 楼
mark
f*b
50 楼
强贴帮顶!
相关阅读
求解,opt期间出差……为什么给了Offer,还要现在雇主的联系方式呢?ESRI 的FULL TIME PAY有多少?在RED LANDS为什么这里的面试题和carrercup上的不一样呢Dream公司实习电面求祝福Google intern 两个技术面都过去3周了,还没消息Anyone had interview experience with Amazon Customer Service?帮朋友问个找工作要求citizen的问题EE大公司也是忽悠居多急问:电面第一句话怎么说好?logic thinking in programming我需要请专门的公司改简历么?human resource~~~ 唉, 想说拒Goog不容易公司给了offer, 是不是马上可以开始办eb1b的绿卡?BrainBench C# Testcontractor和full time的h1b是一样的吗?除了OPT之外F1还有啥身份可以临时工作的?laid off之后请问如何查公司是否将h1取消有拿到统计OFFER的吗?