前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈双机房的那些事

浅谈双机房的那些事

作者头像
WindWant
发布2023-07-20 21:45:34
3050
发布2023-07-20 21:45:34
举报
文章被收录于专栏:后端码事后端码事

为什么要有双机房?

可能有几个考虑:

  • 容灾:强如阿里云、微信、唯品会等,依然避免不了机房故障问题。一次这个级别的故障,就会有一个技术头头下野。
  • 更快的响应:网络时延和物理距离成正比,用户距离服务越近,时延越友好 。不同的地域,多机房多活模式,就近提供服务。
image
image

一、双机房需要做什么?

1、一套完备的服务

完备的服务包括哪些?

应用服务实例,缓存服务实例、数据库服务实例、mq 服务实例等。

服务实例数量可以根据实际需要确定,不必要求安全对等,但是比例不能乱。

2、数据同步

数据的同步是至关重要的。数据是业务逻辑的承载和服务状态的基础。

数据同步强调准确性和实时性。 两个机房的数据根据不同的活性模式,数据域可能略有差异,但是相同的数据域必须要保障一致性。

3、服务就近调用

这里说的服务调用是指内部服务之间的访问需求,就近是指访问限定在机房域内,尽量避免跨机房调用。

服务调用主要分如下几个点:

a)Http 方式

http 方式简洁,易用,是服务间交互的常用方式,通常使用内部域名(避免直接ip访问)访问。

双机房建设,则需要做好相应的适配。

b)rpc 方式

rpc 方式则更侧重扩展性,可靠性,高效性等。通常有相应的服务框架及管理框架支持。

rpc 服务提供者和使用者通过服务注册中心进行服务注册发现交互。

双机房注册及发现,需要有相应的【就近策略】支持。

c)mq 方式

mq 异步交互模式。

业务消息限制发送到同一机房,并由同一机房服务进行消费。

二、双机房的两种模式

1、灾备

灾备模式,即机房服务作为备用,不参与对外服务。一旦主机房发生故障,快速切换响应。

这种建设模式因为变更来源全部为主机房单向数据同步,所以比较容易实现。

灾备模式需要做什么?

灾备模式数据同步实时性要求没有那么高。更强调数据的最终一致性。

备机房服务节点可以直接作为备节点模式进行数据的同步。

2、双活

双活模式,即两个机房同时对外提供服务,同时对底层数据产生变更操作。

这种涉及的逻辑比较复杂,要求也相对较高,强要求数据同步实时性。

双活模式需要做什么?

a)用户切割

所谓用户切割即,划分两个机房服务不同的用户群体。尽量使得同一个用户的数据变更都发生在同一个机房。

切割通常可以从网关层面进行流量调度。

调度策略可以基于用户属性层面考量,比如:地域、ID特性等。

b)数据双向同步

数据双向同步,听着就麻烦,所以必须有 a)中的用户切割作为基础。

对于可能产生的同一数据的双相同步场景(数据冲突等),处理尤要慎重(基于时间戳、外部验证等前置验证方式)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、双机房需要做什么?
    • 1、一套完备的服务
      • 2、数据同步
        • 3、服务就近调用
          • a)Http 方式
          • b)rpc 方式
          • c)mq 方式
      • 二、双机房的两种模式
        • 1、灾备
          • 2、双活
            • a)用户切割
            • b)数据双向同步
        相关产品与服务
        微服务引擎 TSE
        微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档