Elixir/Erlang 热代码替换:实现零停机部署

2024-12-13

本文深入探讨了 Elixir/Erlang 的热代码替换技术,这种技术允许在运行时加载和卸载代码,无需重启系统即可升级应用。文章通过一个简单的 KV 模块示例,演示了如何手动进行热替换,并介绍了 iex 的 c/1 和 r/1 命令以及 Relups 工具,用于更便捷地管理应用和发行版升级。 文章最后阐述了 Erlang 应用、发行版、appups 和 relups 的概念,并详细讲解了使用 Distillery 工具生成应用发行版和升级发行版的方法,最终实现零停机部署,有效避免服务中断。

阅读更多

手动编辑 Hunks 的艺术

2024-11-13

本文介绍了手动编辑 hunks 的技巧。Hunks 是统一差异补丁文件或 Git 补丁中的变更块。文章解释了统一差异格式,包括如何识别 hunk、理解上下文数字以及如何添加或删除行。文章还探讨了编辑 hunk 的动机,特别是在使用 git-add --patch 时,并通过一个示例演示了如何使用编辑器手动编辑 hunk 以分离不同的更改并进行分阶段提交。

阅读更多
未分类 hunk