从Erlang看高并发可容错系统设计原则

《面对软件错误构建可靠的分布系统》 写道 《面对软件错误构建可靠的分布系统》 写道
Erlang 的世界观可以归纳为如下的一些观念:
z 一切皆进程。
z 进程强隔离。
z 进程的生成和销毁都是轻量的操作。
z 消息传递是进程交互的唯一方式。
z 每个进程有其独有的名字。
z 你若知道进程的名字,你就可以给它发消息。
z 进程之间不共享资源。
z 错误处理非本地化。
z 进程要么好好跑,要么死翘翘 Erlang 的世界观可以归纳为如下的一些观念: z 一切皆进程。 z 进程强隔离。 z 进程的生成和销毁都是轻量的操作。 z 消息传递是进程交互的唯一方式。 z 每个进程有其独有的名字。 z 你若知道进程的名字,你就可以给它发消息。 z 进程之间不共享资源。 z 错误处理非本地化。 z 进程要么好好跑,要么死翘翘

上文引之Erlang创始人Joe Armstrong对Erlang世界观的总结,其中也包含了编写大型高并发可容错的软件系统应遵循的最基本原则:

  1. 隔离,破除数据共享;
  2. 消息传递实现并行协作;
  3. 速错且异地纠错。

一个有趣的问题,用Erlang开发应对高并发是不是就意味着高性能呢?从Erlang的世界观看,答案是肯定的。因为,隔离解决共享资源锁的性能瓶颈,此外Erlang的进程创建和销毁也是轻量的。可是事实上呢?感兴趣的话请参见:

经验分享 程序员 微信小程序 职场和发展