跳转至

1 escokd简介

1.1 简介

escocked是emqx开发的Erlang通用非阻塞TCP/SSL套接字服务器 特征 - 通用非阻塞TCP/SSL套接字服务器 - 接受池和异步TCP接受 - UDP/DTLS服务器 - 最大连接数管理 - 通过对等地址允许/拒绝 - 代理协议V1/V2 - Keepalive支持 - 利率限制 - IPv6支持

1.2 代码获取

1.2.1 克隆代码

git clone git@github.com:emqx/esockd.git

1.2.2 切换分支

 git checkout v5.8.0
 ```

### 1.2.3 查看分支
mac@MacdeMacBook-Pro esockd % git branch -v * (HEAD detached at v5.8.0) 9b959fc Merge pull request #142 from emqx/refactor/avoid_anonymous_func master 3ba3a8a Merge pull request #162 from lafirest/fix/udp_listen_addr

###  1.3 特征
### 1.3.1监督树
esockd_sup -> esockd_listener_sup -> esockd_listener -> esockd_acceptor_sup -> esockd_acceptor -> esockd_acceptor -> ...... -> esockd_connection_sup -> esockd_connection -> esockd_connection -> ...... ```

1.3.2 接收池

  • 接收池

  • 发生 e{n, m} 文件错误时暂停一秒钟

1.3.3 连接支持

  • 创建一个连接,并让它运行...
  • 控制最大连接数
  • 计算活动连接数
  • 统计关机原因

1.3.4 基准

一台 8 核、32G 内存的 ubuntu/14.04 服务器上的基准测试 2.1.0-alpha 版本::

  • 250K concurrent connections 单机25W并发连接
  • 50K messages/sec 每秒5万条消息
  • 40Mbps In/Out
  • consumed 5G memory, 5G内存
  • 20% CPU/core 20%的CPU使用