这个项目能做什么
该仓库是一个面向学习的集合,包含小型、自包含的 Elixir 示例,旨在从第一原理教授分布式系统概念。它不关注 Web 框架或 CRUD 应用,而是使用原始的 Elixir 进程原语来演示在引入 GenServer、Supervisor 和 Registry 等高级 OTP 抽象之前,分布式系统是如何构建的。
每个示例都是独立的、最小的,并且可以通过一个命令运行,并配有一篇技术博客,解释问题、设计决策、消息流、局限性以及 OTP 如何解决这些局限性。该仓库遵循一个结构化的路线图,从进程基础开始,逐步涵盖进程协调、分布式 BEAM 节点、复制、容错、分布式数据结构,并最终完成一个微型分布式消息队列项目。
已完成的示例包括:不使用 GenServer 构建有状态进程、相关请求-回复、进程监控、进程链接、从头构建的 Supervisor、命名进程、工作池和发布/订阅。计划中的主题包括:背压、连接节点、远程消息传递、节点失效检测、分布式计数器、主/从复制、心跳、领导者选举、作业队列、可靠消息传递、写前日志、分布式键值存储、CRDT,以及一个微型分布式消息队列。
该仓库对于想要理解 Elixir 内部机制、Erlang/OTP、消息传递、并发编程、容错以及 RabbitMQ 等系统背后的架构思想的开发者非常有用。它最好被视为一个教育实验室和博客伴侣,而不是一个生产就绪的框架。
评论
0 评分人数达到10人后显示
登录后参与讨论。