UMP系统架构
UMP系统架构 UMP(Unified MySQL Platform)是由阿里集团核心系统数据库团队设计与实现的,提供低成本和高性能的MySQL云数据服务。他的四大特点是:单一访问入口多管家消除单点故障弹性动态增加资源隔离UMP系统架构(1)Mnesia:分布式数据库管理系统Mnesia运行在controll
·
UMP系统架构
文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在一亿人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍。
UMP(Unified MySQL Platform)是由阿里集团核心系统数据库团队设计与实现的,提供低成本和高性能的MySQL云数据服务。他的四大特点是:
单一访问入口
多管家消除单点故障
弹性动态增加
资源隔离
UMP系统架构
(1)Mnesia:分布式数据库管理系统
Mnesia运行在controller 服务器上支持事务、提供透明的数据分片、利用两阶段锁来实现分布式事务、具有线性扩展性(可扩展到至少50个节点)。
Mnesia的数据库模式可在运行时动态重配置,表可被迁移或复制至多节点来实现高容错性。这一点是不同于一般关系型数据库最明显的地方。
(2)RabbitMQ:工业级的消息队列产品
RabbitMQ作为消息传输中间件来使用,能实现可靠的消息传送。
UMP集群中各节点的通信不需要建立专门的连接,而是通过读写消息队列来实现的。但有一点因为是队列实现所以是异步的
(3):协同工作系统
Zookeeper
Zookeeper提供如统一命名、状态同步、集群管理和分布式应用配置项的管理等服务,用于构建分布式应用或减轻分布式应用程序所承担的协调任务。
在UMP系统中,Zookeeper主要用来:
作全局配置服务器;
选出集群总管(提供分布式锁)实现多个controller备份但同一时刻只有一个总管;
监控所有MySQL实例,发现故障通知管家。
(4)LVS:Linux虚拟服务器
它主要用于实现UMP系统中集群内部的负载均衡,主要采用两种技术:IP负载均衡技术和基于内容请求分发技术,这里暂时不对这两种技术作深入。
(5)Controller服务器:为UMP集群提供各种管理服务(成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等)
(6)Web控制器:向用户提供系统管理界面
(7)Proxy服务器:完全实现了MySQL服务,向用户提供访问MySQL数据库的服务,可以理解为数据库第用户的窗口。
(8)Agent服务器:它部署在运行MySQL进程的机器上,用来管理每台物理机上的MySQL实例
(9)日志分析服务器:存储和分析Proxy服务器传入的用户访问日志,支持实时查询一段时间内的慢日志和统计报表
(10)信息统计服务器:定期将采集到的用户连接数、QPS(每秒查询次数)数值及MySQL实例的进程状态等信息进行统计展示在Web界面上,或将结果作为以后资源分配等的依据。
(11)愚公系统:用于做数据迁移,允许在不停机的情况下动态扩容、缩容和迁移。
Controller服务器用来管理各个集群,并且为了避免单点故障,Zookeeper实现多个controller备份但同一时刻只有一个总管。
同时Zookeeper服务器还会进行整个集群配置文件的管理和监控MySQL集群的总体运行状态,一旦探测到故障,马上向Controller汇报。
整个集群通过LVS来实现负载均衡。用户能通过Web控制台查询各个组件运行的状态信息。各个组件之间传递消息是通过RabbitMQ来实现的。
以上是对UMP系统架构一个全局的认识,可以帮助了解一个具体的云数据库是如何架构的。
本文图片非原创,如有侵权请与我联系。
加油吧,程序员!
更多推荐
已为社区贡献1条内容
所有评论(0)