索引
文章截图
简评
- 应用程序的双活最简单
- 中间件的双活还好
- 数据库的双活最难
什么双活最简单?没有状态的双活最简单,应用程序就是一段代码,他没有状态,所以是最简单的。
中间件就开始有状态了,这个状态在两边机房如何保持一致?不实时的同步在一个机房宕机时必然带来大量数据不一致,即使实时同步也会有少量数据不一致,只能仰仗宕机的机房恢复后达成最终一致。
某些中间件就不用考虑双活的问题,直接部署两套就行,例如微服务的注册中心,各自机房维护自己的一套就行。
数据库的我写的最难,是我觉得数据库是用户数据最终落地的地方,这个双活必须考虑特别周到,不然数据丢失就是大问题。文中也举了例子,放弃了MySQL自己的主从同步,使用binlog将一个主库数据同步到另一个机房的主库中。还介绍了阿里巴巴的Canal和Otter组合,来做这个事。
文中最后也介绍了,业界大部分采用的是主备模式的假双活,因为简单啊。备机房只是备用,不提供服务,只有主宕机了备才提供服务。缺点是浪费一个机房的资源。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/1982