你好。
ranch是一个TCP socket连接池应用。TCP协议是非常多网络协议的基础,比如HTTP,websocket,比特币的p2p通信协议等等,ranch可以使用你自己编写的基于TCP的协议。
ranch的代码量很精简。
ranch
: 用户接口,提供了一些控制函数。包括启动、停止、暂停监听,读取和修改配置等等。
ranch_server
: gen_server,用ets表来存放各种配置信息。
ranch_conns_sup
: 由进程来实现的一个特殊的supervisor,用于管理连接进程。
ranch_protocol
: 回调模块,用于实现应用协议,例如HTTP等。
ranch_transport
: behaviour回调模块,用于实现传输协议,例如TCP或SSL。
大致的进程结构是这样:
一些启示:
ranch有自己的日志模块,提供更多的日志等级,接入别的日志后端很方便。
自己实现superviosr可以让进程管理功能更强。
扫描二维码关注公众号,回复: 2206096 查看本文章用一个进程加ets表专门管理配置信息是不错的选择。