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代码简述)