如果要实现zero-downtime deployment,那DB的升级一般怎么做呢?

2013-07-11 12:31:56 +08:00
 dancercl
最近想尝试用golang建个API server,无意发现
goagain(https://github.com/rcrowley/goagain)可以实现zero-downtime deployment,有点想用起来,但由于旧的代码和新的代码可能同时访问DB,所以DB的升级问题不好解决(目前用的postgresql)。

我感觉不停机升级在python和ruby界好像有不少案例了(或者是错觉?),但google出来的DB解决方案都比较复杂并容易出错。

此外我尝试了一下mongodb,由于是schema-less所以这个问题可以完美的绕开,但感觉只为了这个目的而换DB太小题大作了。

各位有什么好的想法吗?
3338 次点击
所在节点    MySQL
2 条回复
julyclyde
2013-07-13 15:07:38 +08:00
pt-online-schema-change
或者是应用层解决
Livid
2013-07-13 15:09:43 +08:00
不要一口气运行很多 alter table,这样很容易出事,而且出事之后的状况会很复杂。

一次一条,逐步上线小修改,会比较安全。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75445

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX