接上文,讲到多机房中的方案,本文继续说明多机房中数据同步的几中方式。


上图为,全球化部署环境下,多机房部署,使用到相关技术:
1. 智能DNS:负责就近机房解析;
2. API网关:负责关键数据读写分离;
3. 数据同步:负责底层数据库的同步;
4. 其它:如消息中心等;

多机房的数据同步

数据同步的方式存在如下几种:

一写多读

如上图所示。
1. 主机房,实现完整的读写;
2. 副机房,通过网关将写转到主机房,读在本机房完成;

从业务上来讲,如果写的不太频繁,那么可以考虑使用一写多读的方案。相对来说,现在开源的数据同步方案,对单向的同步都是较好的。

其中,MySql的多数据中心数据同步,可参考:alibaba/otter。

多写多读

完全意义上的多写多读基本上是不实现的。现在的多写多读基本上做的都是一定条件下的多读多写。如otter做的到级别为:按行同步。这里介绍一下按租户隔离方案。

按租户分机房写入

如上图所示:
1. 在创建租户时,确认归属机房;
2. 对本机房的租户,读写都在本机房进行;
3. 对非本机机房的租户,读在本机房进行,写对相应的归属机房;

一般情况下,应用需要本地化的,真正需要做的全球化的业务很少。因此通常来说,按租户隔离可满足大多数的业务需求。
- 用户需要做到全球化,后面有空可以单独讲一下用户的全球化;
- 文件也需要做的全球化,上传可以在各机房独立上传,通过CDN做加速下载,找个好点的CDN厂商即可;

技术说明

关于数据延迟

受全球化网络环境的影响,一般数据同步能做的秒级,要求再高的话比较困难。

浅谈全球化部署(二)相关推荐

  1. 浅谈全球化部署(一)

    浅谈全球化部署 概述 可能源自于公司的跨国业务需求,也可能源自于公司的业务要在海外提供拓展,产生了全球化部署的需求. 讲到全球化,这里稍微说明一下,几个概念: 本地化:Localization,通常缩 ...

  2. catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文

    浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...

  3. 浅谈领导力之二 - 授权与放权

    前文回顾 浅谈关于领导力之一 - 识人之能 我见过非常多优秀的草根创业者,能力极为出众,自己可以搞定很多事情,但是做公司却很难做大,很多人卡在这个环节上,经常抱怨,没有人才啊,你看招来的都笨死了,是的 ...

  4. 浅谈通信编程(二)--如何分离通信物理接口和应用程序

    如何分离通信物理接口和应用程序<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  5. 浅谈python_浅谈Python(二)

    一.Python算术运算符 以下假设变量a为10,变量b为21: 运算符描述实例 + 加 -- 两个对象相加 a + b 输出结果 31 - 减 -- 得到负数或是一个数减去另一个数 a - b 输出 ...

  6. hdfs安全模式退出_浅谈HDFS(二)之NameNode与SecondaryNameNode

    NN与2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 假设存储在NameNode节点的硬盘中,因为经常需要随机访问和响应客户请求,必然效率太低,所以是存储在内存中的 但是,如果存储在 ...

  7. 浅谈数据库设计二三事

    作为程序员,程序设计前的数据库设计非常重要,这将直接关系到紧接着的代码编写工作,这里谈谈有关数据库设计过程中的一些细节问题. 一.数据表主键的字段选择(ID,Code,Number) ID(编号)一般 ...

  8. go与JAVA差异_20190312_浅谈gojava差异(二)

    第二节内容概览 循环(for.switch) 多值返回 defer & finally init(go) 与默认构造函数(java) 常量.静态变量(const 与 static final) ...

  9. mysql 变量 数据类型_浅谈mysql(二)数据类型

    //我...我才是不是傲娇呢 //如有问题还请多多指教.上回我们说到我们如何使用MySQL,关键是要看它的用途.用途衍生语句.之后文章的思路,也是如此,从用途出发,然后再到语句. 那么,我们先问几个问 ...

最新文章

  1. 微服务最佳实践:MSE 微服务引擎
  2. HDU - 3667 Hotel(线段树+区间合并)
  3. Heritrix 3.1.0 源码解析(六)
  4. Linux命令行编辑快捷键
  5. 第五课 机器学习中的特征工程
  6. 摇杆怎么映射到键盘_[评测]YAMAHA PSRSX900:雅马哈升级幅度最大的高端编曲键盘键盘中国原创评测...
  7. zookeeper、hadoop、hbase单机伪分布式环境搭建(虚拟机vmware)
  8. Android 系统(95)---Android build.prop参数详解
  9. ZeroClipboard实现复制
  10. 【Linux初始化init系统】
  11. php开发oa系统的插件下载不了,什么是oa系统软件
  12. 【科普】数字货币的基石--区块链
  13. Windows10解决耳机被识别为扬声器问题
  14. 优秀领导者必须具备的4大特质
  15. 成都java开发学习要多久
  16. C++ day24 继承(四)抽象基类,纯虚函数,protected
  17. 太空射击 第07课: 添加图形
  18. 链圈百家,IT词话:BTA 2018先锋资源集锦(另附PPT下载)
  19. yum 命令使用详解
  20. redhat系列镜像下载

热门文章

  1. 如何提升企业级PMO协调能力?
  2. HTTP 状态码详解大全 | HTTP Status Codes
  3. 小米2的android5.0原版rom,小米2/2S已完美刷入安卓5.1
  4. B端,钉钉也许并非得心应手
  5. cocos2dx - PageView
  6. Horizon client连接错面报错:无法建立安全加密链路连接
  7. JavaScript匿名函数理解及应用
  8. css背景渐变(动画)
  9. Sprigboot整合mybatis连接数据库(详细)
  10. word如何跳着设置,如何删除分隔符