为什么要有双机房?
可能有几个考虑:
完备的服务包括哪些?
应用服务实例,缓存服务实例、数据库服务实例、mq 服务实例等。
服务实例数量可以根据实际需要确定,不必要求安全对等,但是比例不能乱。
数据的同步是至关重要的。数据是业务逻辑的承载和服务状态的基础。
数据同步强调准确性和实时性。 两个机房的数据根据不同的活性模式,数据域可能略有差异,但是相同的数据域必须要保障一致性。
这里说的服务调用是指内部服务之间的访问需求,就近是指访问限定在机房域内,尽量避免跨机房调用。
服务调用主要分如下几个点:
http 方式简洁,易用,是服务间交互的常用方式,通常使用内部域名(避免直接ip访问)访问。
双机房建设,则需要做好相应的适配。
rpc 方式则更侧重扩展性,可靠性,高效性等。通常有相应的服务框架及管理框架支持。
rpc 服务提供者和使用者通过服务注册中心进行服务注册发现交互。
双机房注册及发现,需要有相应的【就近策略】支持。
mq 异步交互模式。
业务消息限制发送到同一机房,并由同一机房服务进行消费。
灾备模式,即机房服务作为备用,不参与对外服务。一旦主机房发生故障,快速切换响应。
这种建设模式因为变更来源全部为主机房单向数据同步,所以比较容易实现。
灾备模式需要做什么?
灾备模式数据同步实时性要求没有那么高。更强调数据的最终一致性。
备机房服务节点可以直接作为备节点模式进行数据的同步。
双活模式,即两个机房同时对外提供服务,同时对底层数据产生变更操作。
这种涉及的逻辑比较复杂,要求也相对较高,强要求数据同步实时性。
双活模式需要做什么?
所谓用户切割即,划分两个机房服务不同的用户群体。尽量使得同一个用户的数据变更都发生在同一个机房。
切割通常可以从网关层面进行流量调度。
调度策略可以基于用户属性层面考量,比如:地域、ID特性等。
数据双向同步,听着就麻烦,所以必须有 a)中的用户切割作为基础。
对于可能产生的同一数据的双相同步场景(数据冲突等),处理尤要慎重(基于时间戳、外部验证等前置验证方式)。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有