源码分析Node的Cluster模块

uerwtoy 2019-09-04

服务器 函数 nodejs 阿里技术协会 模块 源码 cluster node Server

从源码分析Node的Cluster模块

前段时间,公司的洋彬哥老哥遇到一个问题,大概就是本机有个node的http服务器,但是每次请求这个服务器的端口返回的数据都报错,一看返回的数据根本不是http的报文格式,然后经过一番排查发现是另外一个服务器同时监听了http服务器的这个端口。这个时候洋彬老哥就很奇怪,为啥我这个端口明明使用了,却还是可以启动呢?这个时候我根据以前看libuv源码的经验解释了这个问题,因为uv__tcp_bind中,对socket会设置SO_REUSEADDR选项,使得端口可以复用,但是tcp中地址不能复用,因为那两个监听虽然是同一个端口,但是地址不同,所以可以同时存在。这个问题让我不禁想到了之前看一篇文章里有人留言说这个选项是cluster内部复用端口的原因,当时没有细细研究以为说的是SO_REUSEPORT

登录 后评论
下一篇
云攻略小攻
1429人浏览
2019-10-11
相关推荐
node.js学习笔记(17) cluster
2245人浏览
2016-01-09 22:42:57
saltstack搭建集群2
581人浏览
2017-11-12 15:18:00
Egg体系导读
1955人浏览
2018-07-10 23:19:08
saltstack实用案例
729人浏览
2017-11-08 09:31:00
mysql cluster搭建
4047人浏览
2016-02-24 13:35:00
Spark源码分析 -- TaskScheduler
953人浏览
2017-05-02 10:37:00
浅析 Heartbeat
642人浏览
2017-11-26 20:29:00
saltstack搭建集群详解1
556人浏览
2017-11-12 15:19:00
redis cluster mget 引发的讨论
675人浏览
2017-06-24 08:05:00
JedisCluster源码解析
471人浏览
2017-06-10 23:48:00
0
0
0
3913