使用多进程解决高并发带来的问题是进程安全锁,框架经常会因为部分代码的报错而导致死锁或内存占用不释放等诸多问题。而使用单进程的服务器框架,通过线程池来做消息轮询和任务执行,能够避开锁带来的诸多问题。
框架的初衷
-
众核时代的并行编程
-
免费的晚餐已经结束了(The Free Lunch Is Over -- Herb Sutter, 2005)
-
E5420(2.5GHz 2004) VS E5-2620v3(2.4GHz 2014)
-
我们获得了更多的核心、更多的线程、更大的缓存、更大的带宽。我们得不到更高的主频。
Erlang
-
1998年Erlang开源
-
2006年传入国内C++程序员圈 Erlang China User Group始于2007,现改名为Effective Cloud User Group
-
并行和分布式 Erlang采用的Actor模式使其增长并行处理,错误处理机制和储存管理为分布式服务,Erlang并不擅长存储密集型数值计算。
Actor模式
-
一切都是Actor 一切都是Object?并行的面向对象模式!创建actor/处理消息/发送消息。发送的消息和发送者解耦、异步通讯。
-
没有Actor的语言提供的框架 Akka by Scala、CAF: C++ Actor Framework by C++、Remact.Net by .net
Skynet
-
2010 年想法</