Home > Erlang探索, 源码分析 > 集群引入inet_dist_{listen,connect}_options更精细参数微调

集群引入inet_dist_{listen,connect}_options更精细参数微调

April 1st, 2015

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: 集群引入inet_dist_{listen,connect}_options更精细参数微调

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,对于结点间的互联socket可以有更精细的控制,RPC的时候性能可以微调:

raimo/inet_tcp_dist-priority-option/OTP-12476:
Document kernel inet_dist_{listen,connect}_options
Test kernel inet_dist_{listen,connect}_options
Implement kernel inet_dist_{listen,connect}_options

参看源码:https://github.com/erlang/otp/commit/14ddc5594d74979a15a256a41fba5f1297aeaa1a

随着Erlang集群和节点上千,节点之间的RPC的开销和延迟就会被放大. 因为每个节点间的互通都是通过tcp, 驱动上也都是gen_tcp所以理论上对于gen_tcp合用的参数都可以设置,在延迟和吞吐量之间来平衡。

祝玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

  1. lxl
    April 3rd, 2015 at 17:22 | #1

    我也在使用erlang,node数还没上千,但是节点间通信却遇到一些问题。主要包括以下几个方面:
    1.global模块,代码中有一部分使用了global模块进行通信,但是网络偶尔波动或者有大量的名称注册的时候,global的名称同步就会出现问题。
    2.使用send,代码中另一部分使用send的做通信,为了简单没有使用确认机制,由于网络原因,有些时候消息会丢掉或者超时。
    这两个问题困扰了很久,也一直没找到有效的解决方案。
    因为接触erlang时间不长,对很多东西了解都不深,感觉遇到的这些东西不知道该怎么下手。现在打算使用消息队列,希望能通过消息队列控制住节点通信。

Comments are closed.