阿里巴巴高级数据库架构师黄欢欢在2017云栖大会苏州峰会上与大家分享了云上企业数据库架构之路。主要分享了构建企业级数据库架构包括异地多活、数据库容器化、混合云架构、计算存储分离和数据库与离线混布,其中包含X-DB、HDM等重要云产品。
以下是精彩视频内容整理:
做数据库架构需要满足三个基本需求。第一个问题是扩展,业务高速发展,单地资源容量受限;第二个问题是弹性,双十一对弹性扩展和收缩的需求;第三个问题是成本,在尽可能小的预算成本内完成业务目标。
为了满足这三个需求,阿里巴巴在数据库架构上做了很多探索和改进,包括异地多活升级、数据库容器化、混合云架构、计算存储分离和数据库与离线混布。
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
异地多活升级后,下一步开始尝试做数据库容器化。
在日常的流量下,用户可以跑在自建IDC下,大促期间使用弹性混合云架构,大促前将数据库弹性扩展上去,大促结束后将申请的ECS资源返还回去,扩上去和弹下来可以在一个月内完成。为什么我们有这么快的弹性伸缩能力?这依赖于新的云产品混合云数据库管理平台。
完成异地多活架构、数据库容器化和混合云架构后,我们仍然与应用不一样,应用容器化后可以快速调度,但数据库还不行,为什么?因为应用是无状态的,而数据库是有状态的,数据库下面拖有数据,如果有持久化数据,就没办法与应用一样做到弹性能力,因此,我们只有进行计算存储分离。
那么,为什么要做计算存储分离?原因有以下四点:
第一, 要做更好的弹性能力就要把DB去状态化,将计算节点和存储分开,使调度变得更简单;
第二, 解除计算和存储Bond,如果计算节点需要扩2倍、存储节点需要扩4倍,分别对计算和存储进行扩容。另外,将数据放在统一的存储里,磁盘碎片会大大减少;
第三, 计算节点不再需要冗余,节省了成本;
第四, 为数据库在线和离线任务的混部提供了基础。
为了进一步减少成本,我们将数据库与离线任务混部在一起。
阅读原文
在前面一篇文章中http://blog.csdn.net/tianyaleixiaowu/article/details/77884778,已经讲过了独立使用zuul进行反向代理了。在那篇文章中,没有使用eureka进行服务发现,而是使用简单的url配置,直接将用户请求发送到指定的url。这种做法适合于兼容一些老系统或者无法进行eureka服务注册的项目中,当时有一个东西没有提到,那就是熔断器。...
Installing the AWS SAM CLI on macOShttps://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/serverless-sam-cli-install-mac.htmlThe following steps help you to inst...
这里是对docker compose 网络配置的一些说明,详细的文档参考:https://docs.docker.com/compose/networking/1 default network如果不显式指定,Compose会为每一个app设置一个default网络。每个service的container会加入这个default网络并且能够被这个网络上的其他container访问到,hostname就是container的name,通过这个hostname可以发现container。注意:
本文介绍Android Studio的Gradle常用功能及其重要属性的配置
springcloudgateway网关限流***************************限流算法:令牌桶 以均匀的速率向令牌桶中添加令牌,令牌数量达到最大后,数量不再增加;对客户端的请求按key进行分组,请求获得对应令牌桶中的令牌后,发送到后端处理;如果不能获得令牌,则等待或者服务降级使用令牌同算法可以...
sqoop导入数据到hive查询全部为null.最近在用sqoop导入数据到hive的时候,遇到一个问题.用sqoop将数据导入到hive后,在hive查询,发现数据全部为null.而用sqoop导入命令的时候,没有报错,提示成功bin/sqoop import --connect jdbc:mysql://xxxxxxxxxxxxx:3306/xxxxxx --username xx...
观点一:非诚勿扰,想静静。1、啥也没听,只是带着耳机而已。只是想告诉别人不要打扰我,选择性屏蔽一些讨厌的人说的话,不回答他。2、在听笑话或者有声小说。特别不想工作的时候会...
1,replicajersey,胶印球迷版,简称 胶印版或者rep1,replicajersey,胶印球迷版,简称 胶印版或者rep与球员身上穿的球衣忠实度 是几个版本中最大相径庭的从sandknit到champion再到reebok,nike,adidas都有出rep,其中以champion最受欢迎,rbk 和adidas就基本变成了大宽肩 现在r30改进了 做的比原来好点了优点就是轻...
1. 正则表达式规则1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程
全局波峰波谷:max();min();所有波峰波谷:findpeaks();pks = findpeaks(data) [pks,locs] = findpeaks(data) ------pks 对应峰值,locs 对应峰值位数 [...] = findpeaks(data,'minpeakheight',mph)----mph 设定峰值的最小高度 [...] =
学习linux有一段时间了,也算是有一点linux学习心得体会。刚开始以为linux学习起来很容易,但后来才发现,想精通linux还是有点难呢。来写一些自己的linux学习心得体会吧,我的linux学习内容如下:1、虚拟机安装ubuntu,ubuntu桌面环境的使用,软件更新等,基本的命令2、shell命令:cd、pwd、man、mkdir、ls、chmod、cat、cp、more、mv、rm、s...
来源:http://blog.sina.com.cn/s/blog_5ceb51480102wli8.htmlLinux grep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。一、或(or)操作1、使用 \|grep 'a1\|a2' filename//找出文件(f...