ranch代码阅读:简洁又符合直觉

你好。

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可以让进程管理功能更强。

  • 用一个进程加ets表专门管理配置信息是不错的选择。

猜你喜欢

转载自www.cnblogs.com/LJZN/p/9326699.html