美文网首页
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认识:(一)系统架构

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

  • UMP认识:(二)系统功能

    (1)容灾 容灾分为两个过程:将宕机主库切换为备用从库&将恢复的主库重新上线。 UMP系统一般会为每个用户至少创建...

  • [微服务]3分钟决策是否要用微服务架构

    一.认识微服务架构 应用架构发展:单体应用  SOA(ESB) 微服务云原生 朴素理解转微服务架构就是系统服...

  • 认识Android的系统架构

    Android 系统架构由 5 部分组成,分别是:Linux Kernel、Android Runtime、Lib...

  • [Unity 3d]解决 UMP Can't load 'lib

    这是一篇碎碎念的 UMP Bug 修正笔记,希望能帮助有需要的朋友。UMP :Universal Miedia P...

  • Linux架构

    . Linux系统架构图:系统架构图系统架构图系统架构图

  • 一文读懂分层架构

    认识分层架构 分层架构是运用最为广泛的架构模式,几乎每个软件系统都需要通过层(Layer)来隔离不同的关注点(Co...

  • 架构分层

    架构设计的目的是解决软件系统复杂度带来的问题。分层架构设计只不过是架构设计中的一种设计思想和方法论 认识分层架构 ...

  • 软件系统架构评估方法ATAM介绍

    越来越多的人认识到,软件系统架构的选择对于软件系统开发的成败至关重要,那么问题来了,软件架构各种风格各种方法,光分...

  • Mysql 架构及 Innodb架构

    Mysql 系统架构 先来一张架构图(摘自官网),对Mysql 数据库有一个整体的认识。 连接器(connecto...

网友评论

      本文标题:UMP认识:(一)系统架构

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