美文网首页
UMP认识:(一)系统架构

UMP认识:(一)系统架构

作者: 夕望有你 | 来源:发表于2016-12-29 13:49 被阅读400次

    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认识:(一)系统架构

          本文链接:https://www.haomeiwen.com/subject/adtpvttx.html