vereis 的网站

主要观点:Erlang 以并发、容错和分布闻名,其基于 Actor 模型,通过进程和消息传递实现并发,有内置的容错机制如链接和监控进程,OTP 是基于 Erlang 的库和设计原则集合,分布是 Erlang 的优势之一,通过节点、网络等实现节点间通信,但分布也有诸多问题如大规模集群的可扩展性、缺乏细粒度控制、网络分区、单邮箱瓶颈、节点发现及物理因素等。
关键信息

  • Actor 模型由 Carl Hewitt 提出,Erlang 基于此,进程轻量可创建大量。
  • 消息传递机制用于进程间通信,每个进程有自己的邮箱。
  • 容错机制包括链接和监控进程,可处理进程崩溃。
  • OTP 有行为、监督者、GenServers 等组件。
  • 分布通过节点、网络实现,有网络透明性等特点。
  • 分布存在可扩展性、控制、分区、邮箱瓶颈、节点发现和物理等问题。
    重要细节
  • 创建新进程用spawn/1函数,可无限循环进程作为基本编程方式。
  • 链接进程当一个崩溃另一个也崩溃,监控进程可在进程崩溃时被通知。
  • OTP 组件可组合构建容错、可扩展系统。
  • 节点是 Erlang 虚拟机实例,通过epmd连接,可通过net_kernel:connect_node/1连接远程节点。
  • 分布依赖心跳消息确保连接存活,大规模集群易产生网络流量问题。
  • 分布式 Erlang 缺乏细粒度控制,可利用集群成员异构性并构建自定义路由层。
  • 网络分区是分布式系统需考虑的问题,可使用分布式共识算法等。
  • 单邮箱瓶颈在高流量系统中是问题,可使用替代分布机制。
  • 节点发现需补充如libcluster等工具。
  • 物理因素如光速、时钟同步影响分布式系统设计。
阅读 9
0 条评论