UMP(Unified MySQL Platform)是由阿里集团核心系统数据库团队设计与实现的,提供低成本和高性能的MySQL云数据服务。

UMP系统架构

先不用着急看图,后面介绍各个组件后再来看就比较清楚了。

(1)Mnesia:分布式数据库管理系统

Mnesia支持事务、提供透明的数据分片、利用两阶段锁来实现分布式事务、具有线性扩展性(可扩展到至少50个节点)。

Mnesia的数据库模式可在运行时动态重配置,表可被迁移或复制至多节点来实现高容错性。

(2)RabbitMQ:工业级的消息队列产品

RabbitMQ作为消息传输中间件来使用,能实现可靠的消息传送。

UMP集群中各节点的通信不需要建立专门的连接,而是通过读写消息队列来实现的。

(3)Zookeeper:协同工作系统

Zookeeper提供如统一命名、状态同步、集群管理和分布式应用配置项的管理等服务,用于构建分布式应用或减轻分布式应用程序所承担的协调任务。

在UMP系统中,Zookeeper主要用来:

全局配置服务器;

选出集群总管(提供分布式锁);

监控所有MySQL实例。

(4)LVS:Linux虚拟服务器

它主要用于实现UMP系统中集群内部的负载均衡,主要采用两种技术:IP负载均衡技术和基于内容请求分发技术,这里暂时不对这两种技术作深入。

(5)Controller服务器:为UMP集群提供各种管理服务(成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等)

Cotroller服务器上运行了一组MNesia分布式数据库服务,其中存储了各种系统元数据(集群成员、用户的配置信息与状态信息、用户名到MySQL实例地址的映射关系【路由表】等)。

其他服务器组件需要获取用户数据时,可向Controller服务器发送请求。

UMP系统中部署了多台Controller服务器来避免单点故障、保证系统的高可用性。这时,Zookeeper将出马帮忙选出一个“总管”。

(6)Web控制器:向用户提供系统管理界面

(7)Proxy服务器:完全实现了MySQL服务,向用户提供访问MySQL数据库的服务

(8)Agent服务器:它部署在运行MySQL进程的机器上,用来管理每台物理机上的MySQL实例

(9)日志分析服务器:存储和分析Proxy服务器传入的用户访问日志,支持实时查询一段时间内的慢日志和统计报表

(10)信息统计服务器:定期将采集到的用户连接数、QPS(每秒查询次数)数值及MySQL实例的进程状态等信息进行统计展示在Web界面上,或将结果作为以后资源分配等的依据。

(11)愚公系统:用于做数据迁移,可在不停机的情况下动态扩容、缩容和迁移。

下面再来看这张图:

右上角的MySQL集群,负责具体的数据存储。

Controller服务器用来管理各个集群,并且为了避免单点故障,往往有多个。

但一般情况下,只会让一个生效、其他备用,这就是由ZooKeeper服务器来帮忙实现的。同时Zookeeper服务器还会进行整个集群配置文件的管理和监控MySQL集群的总体运行状态,一旦探测到故障,马上向Controller汇报。

Proxy服务器可以看到是用来连接用户和整个云数据库的,用户通过它来进行数据的查询访问。

整个集群通过LVS来实现负载均衡。用户能通过Web控制台查询各个组件运行的状态信息。各个组件之间传递消息是通过RabbitMQ来实现的。

有的部分在介绍组件时已经阐述,以上是对UMP系统架构一个全局的认识,可以帮助了解一个具体的云数据库是如何架构的。

UMP认识:(一)系统架构相关推荐

  1. mysql ump_UMP认识:(一)系统架构

    UMP(Unified MySQL Platform)是由阿里集团核心系统数据库团队设计与实现的,提供低成本和高性能的MySQL云数据服务. UMP系统架构 先不用着急看图,后面介绍各个组件后再来看就 ...

  2. 系统架构升级要不要上微服务?历“久”弥新微服务——你真的需要升级微服务架构吗

    在 <微服务架构设计模式> 一书中,作者总结了关于微服务的一些"重点",原文如下: 中国企业和开发者对微服务架构的热情让我印象深刻.但如同我给所有客户的忠告一样,我想对 ...

  3. 商品详细信息的代码html_电商网站的商品详情页系统架构

    小型电商网站的商品详情页系统架构 小型电商网站的页面展示采用页面全量静态化的思想.数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面,推入 Nginx 服务器.用户浏 ...

  4. 大型网站采用什么系统架构保证性能稳定性

    from http://www.bobd.cn/design/web/Theory/200904/31145.html 千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用 ...

  5. 系统架构的过程 浮现式设计

    系统架构如果设计之初就设计错了,那么必然是南辕北辙. 很多人做系统设计总是东一下,西一下,杂乱无章,想到那是那,然后系统的边界很大,总会有疏漏. 那么系统架构应该怎么设计呢? 首先来说分层 系统分为三 ...

  6. centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)[连载之电子商务系统架构]...

    centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录) 出处:http://jimmyli.blog.51cto.com/我站在巨人肩膀上Jimmy Li 作者:Ji ...

  7. 说说大型高并发高负载网站的系统架构【转】

    我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大 ...

  8. 型网站的架构设计问题----大型高并发高负载网站的系统架构

    随着中国大型IT企业信息化速度的加快,大部分应用的数据量和访问量都急剧增加,大型企业网站正面临性能和高数据访问量的压力,而且对存储.安全以及信息检索等等方面都提出了更高的要求-- 本文中,我想通过几个 ...

  9. 17张图揭密支付宝系统架构

    支付宝的系统架构图,仅供参考.不管是不是支付行业,都值得我们参考,学习. image image image image image image image image image image ima ...

最新文章

  1. LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I
  2. easyUI 展开DataGrid里面的行显示详细信息
  3. 电影短视频营销白皮书
  4. 【工程项目经验】Centos 编译32位程序
  5. 自己动手开发编译器(四)利用DFA转换表建立扫描器
  6. android消息通知布局,Android Design
  7. Nginx PHP Apache 隐藏版本号/禁止显示版本号
  8. Linux宝库名人轶事栏目 | 智能化之边缘计算浅析
  9. 工具说明书 - 输入汉语拼音
  10. 什么用matlab做ewma,ewma模型
  11. Go语言使用RabbitMQ
  12. MongoDB安装中使用配置文件的方式启动服务时出现错误:forked process: 2784 ERROR: child process failed, exited with 100
  13. String spilt()方法
  14. 30条爆笑的程序员梗PHP是最好的语言
  15. 【python】统计正负数个数
  16. Java中的魔法值介绍及解决办法
  17. Mendix公司最新调查结果显示:低代码已从企业机构应急技术进阶为核心技术
  18. 网狐6603服务器文档,网狐6603服务器配置
  19. 海思Hi3559AV100_Demo单板使用手册芯片资料
  20. Hadoop实战记录-目录

热门文章

  1. Kafka面试题系列(基础篇)
  2. 爬虫获取Amazon Payments
  3. 如何切换ie浏览器的版本?
  4. MySQL 计算百分比
  5. 对学生公寓部建议和意见_宿舍管理意见和建议
  6. occ资讯:公链与开发者的需求
  7. like短视频如何去水印 自媒体视频怎么消重
  8. 微信PC端网页扫码登陆
  9. 自己玩玩ios逆向工程
  10. 牛客小白月赛15 A~E 简要题解