共计 717 个字符,预计需要花费 2 分钟才能阅读完成。
01 为什么要容灾?
在小米外部,咱们应用 RocketMQ 来为各种在线业务提供音讯队列服务,比方商城订单、短信告诉甚至用来收集 IoT 设施的上报数据,能够说 RocketMQ 的可用性就是这些在线服务的生命线。作为软件开发者,咱们通常心愿服务能够依照现实状态去运行:在没有 Bug 的前提下,零碎能够提供失常的服务能力。
但事实的运维教训通知咱们这是不可能的,硬件故障是十分常见的问题,比方内存故障、磁盘故障等,甚至是机房相干的故障(专线故障、机房拉闸等)。因而咱们须要对数据进行备份,应用多正本的形式来保障服务的高可用。Apache RocketMQ 设计上就反对多正本、多节点容灾,比方 Master-Slave 架构、DLedger 部署模式。
在小米外部,因为是面向在线业务,服务的复原速度至关重要,而基于 Raft 协定的 DLedger 模式能够实现秒级 RTO,因而咱们在 2020 年初选用了 DLedger 架构作为根本的部署模式(在 5.0 中,主从模式也能够做到主动 failover)。反对机房灾备须要减少额定的老本,上面我将用三个灾备部署的实际案例,解说小米如何在老本和可用性的取舍下来反对灾备。
残缺内容请点击下方链接查看:
https://developer.aliyun.com/article/1211674%20?utm_content=g…
版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。