一、UMP系统概述

1、UMP系统是低成本和高性能的MySQL云数据库方案.

2、总的来说,UMP系统架构设计遵循了以下原则:

保持单一的系统对外入口,并且为系统内部维护单一的资源池

消除单点故障,保证服务的高可用性

保证系统具有良好的可伸缩,能够动态地增加、删减计算与存储节点

保证分配给用户的资源也是弹性可伸缩的,资源之间相互隔离,确保应用和数据安全

二、UMP系统架构

三、UMP系统功能

1. 容灾

为了实现容灾,UMP系统会为每个用户创建两个MySQL实例,一个是主库,一个是从库

主库和从库的状态是由Zookeeper负责维护的

(1)主从切换过程如下:

Zookeeper探测到主库故障,通知Controller服务器

Controller服务器启动主从切换时,会修改“路由表”,即用户名到后端MySQL实例地址的映射关系

把主库标记为不可用

借助于消息中间件RabbitMQ通知所有Proxy服务器修改用户名到后端MySQL实例地址的映射关系

全部过程对用户透明

(2)宕机后的主库在进行恢复处理后需要再次上线,过程如下:

在主库恢复时,会把从库的更新复制给自己

当主库的数据库状态快要达到和从库一致的状态时,Controller服务器就会命令从库停止更新,进入不可写状态,禁止用户写入数据

等到主库更新到和从库完全一致的状态时,Controller服务器就会发起主从切换操作,并在路由表中把主库标记为可用状态

通知Proxy服务器把写操作切回主库上,用户写操作可以继续执行,之后再把从库修改为可写状态

2. 读写分离

充分利用主从库实现用户读写操作的分离,实现负载均衡

UMP系统实现了对于用户透明的读写分离功能,当整个功能被开启时,负责向用户提供访问MySQL数据库服务的Proxy服务器,就会对用户发起的SQL语句进行解析,如果属于写操作,就直接发送到主库,如果是读操作,就会被均衡地发送到主库和从库上执行

3. 分库分表

UMP支持对用户透明的分库分表(shard / horizontal partition)

当采用分库分表时,系统处理用户查询的过程如下:

首先,Proxy服务器解析用户SQL语句,提取出重写和分发SQL语句所需要的信息

其次,对SQL语句进行重写,得到多个针对相应MySQL实例的子语句,然后把子语句分发到对应的MySQL实例上执行

最后,接收来自各个MySQL实例的SQL语句执行结果,合并得到最终结果

4. 资源管理

UMP系统采用资源池机制来管理数据库服务器上的CPU、内存、磁盘等计算资源,所有的计算资源都放在资源池内进行统一分配,资源池是为MySQL实例分配资源的基本单位

整个集群中的所有服务器会根据其机型、所在机房等因素被划分多个资源池,每台服务器会被加入到相应的资源池中

对于每个具体MySQL实例,管理员会根据应用部署在哪些机房、需要哪些计算资源等因素,为该MySQL实例具体指定主库和从库所在的资源池,然后,系统的实例管理服务会本着负载均衡的原则,从资源池中选择负载较轻的服务器来创建MySQL实例

5. 资源调度

UMP系统中有三种规格的用户,分别是数据量和流量比较小的用户、中等规模用户以及需要分库分表的用户

多个小规模用户可以共享同一个MySQL实例

对于中等规模的用户,每个用户独占一个MySQL实例

对于分库分表的用户,会占有多个独立的MySQL实例

7. 数据安全

UMP系统设计了多种机制来保证数据安全:

SSL数据库连接:SSL(Secure Sockets Layer)是为网络通信提供安全及数据完整性的一种安全协议,它在传输层对网络连接进行加密。Proxy服务器实现了完整的MySQL客户端/服务器协议,可以与客户端之间建立SSL数据库连接

数据访问IP白名单:可以把允许访问云数据库的IP地址放入“白名单”,只有白名单内的IP地址才能访问,其他IP地址的访问都会被拒绝,从而进一步保证账户安全

记录用户操作日志:用户的所有操作记录都会被记录到日志分析服务器,通过检查用户操作记录,可以发现隐藏的安全漏洞

SQL拦截:Proxy服务器可以根据要求拦截多种类型的SQL语句,比如全表扫描(即表的每行记录都被遍历到,可通过建立索引避免全表扫描。如成绩作为索引,查找成绩大于60的记录,小于60的可不用遍历)语句“select *”

mysql云架构设计_云数据库系统架构-UMP相关推荐

  1. java秒杀架构设计_秒杀系统设计架构与实现

    最近https://blog.csdn.net/qq_27631217/article/details/80657271做了一个点餐的平台,其中涉及到一个很重要的问题,活动期间的秒杀系统的实现. 抢购 ...

  2. 高老师的架构设计_隽语集(CC_1201)

    前言: 平台(操作系统)是轿子,不一定要自己做轿子,会做好轿子的人处处都有,但是要我们自己能坐上轿子爽快一下才算数:而且坐上去之后,有人争先恐后来抬轿才算成功.如何忽悠别人来大力抬轿(且心甘情愿)是心 ...

  3. IT架构设计_隽语集(Design Thinking _0901)

    前言:架构设计的主要流派有二:1) 抽象思维派:致力于抽象出稳定.可靠.不变的共同性架构:亦即,追求<万变不离其宗>的宗.2)组合创新派:致力于组合出具体独特性的创新架构:亦即,追求< ...

  4. 高老师的架构设计_隽语集(BB_0901)

    前言:架构设计的主要流派有二:1) 抽象思维派:致力于抽象出稳定.可靠.不变的共同性架构:亦即,追求<万变不离其宗>的宗.2)组合创新派:致力于组合出具体独特性的创新架构:亦即,追求< ...

  5. 软硬整合商业思维与架构设计_答问集

    欢迎访问 ==>高老师的博客网页 高焕堂:MISOO(大数据.大思考)联盟.台北中心和东京(日本)分社.总教练 EE                                       ...

  6. 高老师的架构设计_隽语集(AA_0151)

    前言:还是许多人不理解软硬整合与差异化.其原理很简单:例如,一台电视机增加一颗"手势3D"硬件模块,假设其成本是1元,量产1千万台就增加成本1千万元:如果再增加一个软件模块,假设其 ...

  7. A段架构设计_隽语集(Business Thinking _1301)

    前言: 就内容产业而言,让硬件和软件两个产业的创新能量,能够成为内容产业创新的助力,是多么的重要呀! 过去,内容产业只想屏蔽软硬件平台的创新差异化来降低内容的调整成本. 内容产业如何帮助硬件产业呢? ...

  8. IT架构设计_隽语集(EIT设计模式_0701)

    前言:基于parts(行人与汽车)和whole(社会)的需要的平衡之目标,架构师就设计出<红绿灯和班马线>,其规范parts之间的接口(interface),进而细腻订定两者的互动规则(r ...

  9. MySQL异步复制延迟解决的架构设计与运维架构ppt

    <MySQL异步复制延迟解决的架构设计与运维架构ppt> 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731216.html

最新文章

  1. php 获取下拉框选中的文本,jQuery实现select下拉框获取当前选中的文本
  2. UI 积累之select section
  3. tomcat启动命令行窗口出现乱码的解决方法
  4. 阿里云 yum无法正常使用的解决办法 (转)
  5. 埃夫特冲刺科创板 国产工业机器人领军者谋“换道超车”
  6. CentOS下与Apache连接的PHP多版本共存方案实现详解
  7. 第三章:3.4 典型周期信号的傅里叶级数分解
  8. Android之二维码生成和识别
  9. 虚拟机安装Vmware-tools
  10. python读取python源代码文件_python 学习源码练习(2)——简单文件读取
  11. 数据传递型情景下事件机制与消息机制的架构设计剖析(目录)
  12. [C#基础]说说委托+=和-=的那些事
  13. 使用mbw测试内存带宽性能
  14. Zabbix 服务器修改时区时间
  15. C语言——计算当前日期前/后N天的日期
  16. 人工智能产品普及的今天,软件测试人员也在自我进化
  17. kindle paperwhite 使用体验
  18. 数据挖掘-K-近邻算法
  19. 36氪WISE2020新经济之王大会圆满落幕 超170位嘉宾纵论新经济
  20. uniapp 404页面

热门文章

  1. 直放站引起上行高干扰 小区处理案例
  2. [js] js定时器的清除
  3. svg标签和svg文件区别_SVGO减少SVG文件大小的三种方法
  4. i5八代低压跑matlab,8代低压处理器发布,7700HQ竟不敌低压i5?
  5. React中Fragment的使用
  6. 2021全球高被引学者榜单出炉:中科院蝉联第二,南京工业大学超过武大北航
  7. 蚁创互联告诉您何为品牌霸屏?“品牌霸屏”是什么意思呢?
  8. vue可以编辑发布多长的视频_vue可以拍多长的视频_vue怎么注册
  9. GPS与GPRS区别
  10. 关于两种常用特殊字符判断方法