打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
erlang分布式节点通讯方式
早看到这个就好了,我也是用strace发现它用的是poll,顺便搞清楚了erlang的分布式节点通讯方式。

erlang分布式节点通讯,A节点连接B节点,如果在同一机器上,只需要进程间通讯就可以找到节点。不在同一台机器上,A先连接B所在机器的4369端口,寻找节点。如果找到,就通知B节点监听一个端口,再回复A让它连接这个端口。

监听4369端口的是个后台进程epmd,在linux上它使用select,它只建短连接。windows上是epmd.exe。在linux上,节点的监听端口使用poll,指定+K true参数以后,会使用epoll,当然需要编译时打开开关。

每个节点只会监听一个端口,2个节点之间建立连接后,节点之间任意方向的通讯都会走这条连接,这种通讯方式是最合理的,我在做服务器间通讯时也想这种方式,不过这种方式通常是异步操作,所以一直没去实现它,目前服务器间都是临时建短连接,一般通讯量都不大,用做cache同步,腾讯好像也是这么干的。

多个节点之间遵循的规则如下:
1、每个节点只监听一个端口。
2、A节点连接B节点,还没有建立连接,则A connect到B;如果B还没有监听端口,就开一个端口监听。

这种方式可以保证任意两节点之间断开连接,不影响其它节点。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深入浅出分布式文件系统MogileFS集群
Zookeeper分布式协调即分布式锁机制
Zookeeper与paxos算法
面试:Zookeeper常见11个连环炮
ZooKeeper学习之路 (七)ZooKeeper设计特点及典型应用场景
zookeeper应用场景
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服