Erlang 设计相关

  1. 使用 Pool, Pool, Pool… 推荐 GProc 库: https://github.com/uwiger/gproc Erlang 设计相关 - 图1 (opens new window)
  2. 异步,异步,异步消息…连接层到路由层异步消息,同步请求用于负载保护
  3. 避免进程 Mailbox 累积消息
  4. 消息流经的 Socket 连接、会话进程必须 Hibernate,主动回收 binary 句柄
  5. 多使用 Binary 数据,避免进程间内存复制
  6. 使用 ETS, ETS, ETS… Message Passing vs. ETS
  7. 避免 ETS 表非键值字段 select, match
  8. 避免大量数据 ETS 读写, 每次 ETS 读写会复制内存,可使用 lookup_element, update_counter
  9. 适当开启 ETS 表 {write_concurrency, true}
  10. 保护 Mnesia 数据库事务,尽量减少事务数量,避免事务过载(overload)
  11. 避免对 Mnesia 数据表非索引、或非键值字段 match, select