UMP认识:(一)系统架构

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系统架构一个全局的认识,可以帮助了解一个具体的云数据库是如何架构的。








  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值