ranch代码简述
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ranch代码简述相关的知识,希望对你有一定的参考价值。
最近要看一下erlang连接池,觉得ranch很不错。
github上面有人写了ranch的代码阅读,可以看一下,链接在这里。
1. ranch可以同时监听多个端口,每个端口的连接信息可以单独配置。
每个端口的监听信息通过ranch_server进程记录,然后获取信息可以从ets表读取。因为配置信息很少修改,而获取信息比较多。这样的读写分离比较方便并发。
2. 每个连接可以设置最大连接数,通过ranch_conns_sup.erl模块控制。
每个连接过来,连接池都会通知ranch_conns_sup进程更新进程数,然后根据现在的连接情况而决定是否进行下一次socket的连接。
ranch_server记录并管理所有端口连接信息,ranch_conns_sup进程记录并管理单独端口中的连接池的信息,都是一对多的关系。
以上是关于ranch代码简述的主要内容,如果未能解决你的问题,请参考以下文章
使用牛仔示例启动应用程序时出错('noproc',ranch_listener_sup)
当客户端关闭连接时,Cowboy/Ranch 杀死处理程序进程