posts

Erlang/Elixir 专题

Erlang 由爱立信于 1986 年开发,是电信级高可用系统的代名词;Elixir 由 José Valim 于 2012 年创造,在保留 BEAM 虚拟机全部能力的同时引入了现代语法和宏系统。本专题系统覆盖 Erlang/Elixir 语言基础与函数式编程范式、轻量级进程(Actor 模型)与消息传递并发、OTP 框架(GenServer/Supervisor/Application/状态机/事件管理)设计与容错策略、自定义 OTP Behaviour 回调契约、BEAM 运行时与进程调度、Ports 与 NIF 的 C 互操作、ETS 内存缓存与 Mnesia 分布式数据库、分布式 Erlang 节点集群与网络分区处理、Elixir Phoenix Web 框架与 Ecto 数据访问、Phoenix Channels 实时通信与 PubSub、LiveView 状态管理进阶、Mix 工具链与工程化、属性测试与 Mock 策略、热代码升级与 Release 滚动发布、以及生产环境调优与经典系统案例(WhatsApp、RabbitMQ),为构建容错的分布式系统提供完整知识路径。进一步追加 OTP 监督树与任务并发、位语法与二进制协议解析、可观测性三支柱、Ecto 高级查询、安全加固与 OTP 应用设计模式,覆盖从语言到生产部署的完整知识路径。并补齐 Nx 数值计算与 Axon、Absinthe GraphQL、宏与元编程、缓存限流熔断、分布式一致性与脑裂治理、BEAM 内存剖析等进阶议题。

探索 BEAM 虚拟机生态的完整技术图谱,从 Erlang 函数式并发到 Elixir 现代 Web 开发,掌握构建高可用分布式系统的核心能力。

专题文章

语言基础

并发与 OTP

BEAM 运行时与互操作

分布式系统

Elixir 与 Web 开发

生产实践

工程工具链与集成

阅读路线

阶段难度建议阅读顺序
入门初级基础语法 → 语言基础 → 模式匹配 → 迭代器
进阶高级并发编程 → OTP 框架 → 自定义 Behaviour → 分布式编程
运行时高级BEAM 调度 → Ports/NIF 互操作 → ETS 缓存
全栈中级Elixir 入门 → Phoenix 实战 → Channels 实时 → LiveView 进阶 → Mix 工程化
生产高级生产案例与性能调优 → BEAM 性能调优 → 数据库集成
工程中级 → 高级rebar3 构建发布 → Dialyzer 类型规范 → Cowboy HTTP API → RabbitMQ 集成

相关专题

Erlang/Elixir 的函数式编程与并发模型与多种技术领域紧密关联:

Erlang/Elixir 的适用场景

场景Erlang/Elixir 优势示例系统
即时通讯百万级长连接、消息可靠投递WhatsApp
消息队列高吞吐、持久化、路由灵活RabbitMQ
实时游戏服务器低延迟状态同步、容错League of Legends 后端
IoT 设备管理海量设备接入、固件热更新HiveMQ
金融服务交易一致性、零停机升级Klarna

Erlang 的「let it crash」哲学不是放任错误,而是将故障隔离到最小单元(进程),通过监督树自动恢复。这与 Kubernetes 的 Pod 重启策略异曲同工。

专题统计

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
erlang

Ecto 高级查询与数据库工程:关联、多态与性能优化

Ecto 高级查询与数据库工程:查询构建器(from/join/where/order/group/having/窗口函数)、关联预加载(preload/join_preload)、多态关联(表继承/单表继承/多态外键)、数据库事务与隔离级别(Repo.transaction/Ecto.Multi)、变更集与数据验证(cast/validate/unique_constraint)、子查询与 CTE、Ecto 适配器与连接池(DBConnection/连接池大小/超时)、与 PostgreSQL 高级特性集成(JSONB/数组/范围/全文搜索)、性能分析与 N+1 治理。

6 分钟阅读
elixir 数据库 PostgreSQL
erlang

Erlang/Elixir 可观测性:日志、Telemetry 指标与分布式追踪

Erlang/Elixir 可观测性:日志系统(Logger 配置/处理器/格式化/结构化日志)、Telemetry 事件与指标(attach/detach/execute/计数器/直方图/最后值)、分布式追踪(OpenTelemetry/Span 上下文传播)、Observer/CLI 诊断工具(observer_cli/recon/vmstats)、监控告警(Prometheus/Grafana 集成)、BEAM VM 内部指标(reductions/内存/进程/ETS)、日志聚合与 ELK/Loki 集成、可观测性最佳实践。

7 分钟阅读
erlang elixir 日志
erlang

Elixir OTP 监督树与任务并发:Supervisor、GenServer 与 Task

Elixir OTP 监督树与任务并发:Supervisor 策略(one_for_one/one_for_all/rest_for_one/simple_one_for_one)、GenServer 状态机(init/handle_call/handle_cast/handle_info)、Task 异步并发(async/await/yield)、Agent 轻量状态、DynamicSupervisor 动态子进程、Registry 进程发现、OTP 应用结构(Application 回调/规格)、错误隔离与重启强度(MaxR/MaxT)、分布式 Erlang 节点通信、与 Phoenix 的集成模式。

7 分钟阅读
elixir 并发
erlang

Erlang 位语法与二进制处理:高效数据序列化与协议解析

Erlang 位语法与二进制处理:二进制数据类型(bitstring/binary)、位语法表达式(<<Value:Size/TypeSpecifierList>>)、模式匹配二进制(头部/长度/剩余)、二进制推导(binary comprehensions)、高效拼接与拆分(iolist/iodata)、位标志位掩码操作、协议解析实战(TCP/IP 包头/Bitcoin 区块/Protobuf 二进制)、性能优化与内存布局、与 C/NIF 的互操作。

7 分钟阅读
erlang 性能