ranch代碼簡述

最近要看一下erlang鏈接池,以爲ranch很不錯。git

github上面有人寫了ranch的代碼閱讀,能夠看一下,連接在這裏github

1. ranch能夠同時監聽多個端口,每一個端口的鏈接信息能夠單獨配置。併發

每一個端口的監聽信息經過ranch_server進程記錄,而後獲取信息能夠從ets表讀取。由於配置信息不多修改,而獲取信息比較多。這樣的讀寫分離比較方便併發。socket

2. 每一個鏈接能夠設置最大鏈接數,經過ranch_conns_sup.erl模塊控制。spa

每一個鏈接過來,鏈接池都會通知ranch_conns_sup進程更新進程數,而後根據如今的鏈接狀況而決定是否進行下一次socket的鏈接。server

 ranch_server記錄並管理全部端口鏈接信息,ranch_conns_sup進程記錄並管理單獨端口中的鏈接池的信息,都是一對多的關係。進程

相關文章
相關標籤/搜索