一分钟读懂MySQL分布式消息的处理
在很多MYSQL环境中,对于MYSQL的分布式事物处理一直是个难题,在当前互联网环境中,大多数应用系统是基于SOA的很多复杂接口之间的调用,并且事物之间的处理优先级也是有先后的,所以对于实际入库的数据而言,不同的系统,对于当前入库的处理方式是不一样的,这样就衍生出了对于订阅MYSQL消息的需求。
在公司内部,这套分布式消息系统负责了各个子接口之间数据的衔接,同时肩负后端DW数据仓库的实时消息计算,多数的RDBMS数据,被分解成各种子消息队列,通过不同的topic被各种消费者订阅。
一、如何分解消息
后端订阅程序(基于阿里巴巴的canal)通过解析不同应用的binlog (mysql线上产生的二进制日志) 通过模拟slave的行为,将binlog顺序的订阅到本地,通过内部解析程序,将binlog events解析成对应的消息,通过MetaQ 固化解析完成的消息,自定义存放时间,从而让consumer 自行订阅到对应的系统,进行相关处理。
具体roma文档可以参考我的blog:
http://www.vmcd.org/docs/roma_system.pdf
二、何时订阅
通常当支付系统需要做异步分布式事务调用的时候,可以采用roma消息。采用水平拆分DB而需要一些统计类的需求的时候(合表) 可以订阅合并的topics。当需要一个汇总的数据仓库,执行跨库join查询的时候 可以订阅roma消息。
上图中,各类系统通过RPC框架进行异步调用,同时将订阅到的消息(roma异步消息)进行相处理,将操作类型,操作细节发送给对应子系统,从而实现了操作的异步化(而roma对于前端数据库日志的实时解析保证了事物消息的实时性)。
三、对于数据仓库
在我们的系统中,很多核心表被水平拆分成了N份,对于后端实时数据仓库来说,希望通过合并所有的拆分表,进行多维度的查询工作 (对job来说,可以通过定期任务抽取水平拆分的表,但是实时性是滞后的)。
在中转服务器上,使用java程序直接订阅roma的消息,拼接成相应的SQL在后端DW上直接执行。
通过订阅同步消息,将前端更新实时同步到后端的数据仓库,从而达到实时分析的需求。后期结合binlog server的改进还可以进行所有系统的binlog 集中化分层订阅。
具体可以参考:
https://www.mariadb.com/blog/binlog-server
四、对于实时分析平台
同样可以订阅前端RDBMS操作到后端大数据平台,通过流式计算实现秒级的分析。
后期需要改进的:
roma的订阅能力,对于前端log并发解析的粒度
智能的存储策略 动态调整没有被订阅消息的保存时间
一分钟读懂MySQL分布式消息的处理的更多相关文章
- 再见乱码:5分钟读懂MySQL字符集设置
一.内容概述 在MySQL的使用过程中,了解字符集.字符序的概念,以及不同设置对数据存储.比较的影响非常重要.不少同学在日常工作中遇到的"乱码"问题,很有可能就是因为对字符集与字符 ...
- 一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路
原文http://www.cnblogs.com/smallSevens/p/7501932.html#3782600 三分钟读懂TT猫分布式.微服务和集群之路 针对新手入门的普及,有过大型网站技 ...
- 一分钟读懂互联网广告竞价策略GFP+GSP+VCG
原文:http://ju.outofmemory.cn/entry/116780 一分钟读懂互联网广告竞价策略GFP+GSP+VCG 两个广告位,三家广告主竞价,广告平台究竟应该制定广告竞价策略呢?这 ...
- 【转】一分钟读懂互联网广告竞价策略GFP+GSP+VCG
参考这篇文章: http://ju.outofmemory.cn/entry/116780 一分钟读懂互联网广告竞价策略GFP+GSP+VCG 两个广告位,三家广告主竞价,广告平台究竟应该制定广告竞价 ...
- 一分钟读懂低功耗蓝牙(BLE)连接数据包
一分钟读懂低功耗蓝牙(BLE)连接数据包 1.概述 BLE 连接过程中有三个重要的数据包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ. SCAN_REQ: 扫描请求,由主设备(M ...
- 一文读懂MySQL的事务隔离级别及MVCC机制
回顾前文: 一文学会MySQL的explain工具 一文读懂MySQL的索引结构及查询优化 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) 就软件开 ...
- 五分钟读懂UML类图
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类 ...
- 五分钟读懂UML类图(转)
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类 ...
- 五分钟读懂UML类图(转)
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类 ...
随机推荐
- Linux0.11内核--加载可执行二进制文件之1.copy_strings
从现在开始就是分析最后的核心模块exec.c了,分析完这个文件后,就会和之前的所有分析形成一个环路,从创建进程.加载进程程序到进程调度.内存管理. exec.c的核心do_execve函数很长,而且用 ...
- [C#6] 7-索引初始化器
0. 目录 C#6 新增特性目录 1. 老版本的代码 private static void Main() { var dictionary = new Dictionary<int, stri ...
- 打开MySQL数据库远程访问的权限
说明:转自,http://www.cnblogs.com/ycsfwhh/archive/2012/08/07/2626597.html 本人亲测方法1有效,方法2待验证 下载GPL版本安装 M ...
- windows下用QTwebkit解析html
环境 windows7 + VS2010 + QT5.2_opengl 配置开发环境 1.安装VS2010 2.安装QT 5.2 QT网站:http://qt-project.org/download ...
- centos7搭建自己的yum源
http://www.wenbin.cf/post/37/ 1. 安装nginx,createrepo yum install nginx -y yum install createrepo -y ...
- Guest Speaker on 2015 WinHEC Shenzhen 秋季大会
继今年3月份的WinHEC春季大会,秋季大会于11月10日-11日深圳如期举行.此次大会的主题是Windows 10 IoT和Microsoft Azure,云和端的无缝连接是微软物联网解决方案的典型 ...
- Html--表单练习
<!--文档定义一定要带上,因为浏览器在解析的时候先按照文档定义的格式解析, 如果没有就按照浏览器默认的格式解析,可能会出问题.--> <html> & ...
- 使用NetBeans、Eclipse阅读JDK源码
下面说明在Netbeans.Eclipse环境下怎么查看JDK源码: Netbeans: 在"工具->java平台->源"里添加下路径,如果你安装jdk的时候选择安装了 ...
- x01.Weiqi.9: 点目功能
添加点目功能,虽不中,不远也.还是先看看截图吧. 确保其可行,再看一张: 其点目结果,还是比较令人满意的.这主要得益于多遍扫描,如编译器的词法分析阶段,下面的代码可以证明: private void ...
- XML 序列化与反序列化
XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param na ...