Cloudcanal数据同步神器

一.背景与需求
最近有个OLAP的需求,我们需要将MySQL的一些数据(这种数据有一种特性就是一旦产生记录,以后不会再进行修改、删除操作,例如登录日志、操作日志等诸如此类) 。这种数据特性正好符合的用武之地,我们经过调研最终确定使用作为OLAP系统的数据库 。
但是也随之迎来一个问题,运营人员对于这些数据的实时性还是有要求的,例如做一些实时报表分析 。我们大部分的业务系统采用的MySQL,所以自然而然想到通过订阅的方式将MySQL的数据同步到中 。
例如最简单和想到的一种方式是:
1.通过canal订阅mysql的, 将数据写入kafka, 自己写一个kafka消费者对MySQL数据进行处理写入对应的表中,完成数据同步 。
优点: 逻辑简单,canal成熟 。消费kafka的逻辑可以自由发挥
【Cloudcanal数据同步神器】缺点: 每增加一张表要修改消费者代码,针对消费者的高可用、易拓展性、监控告警以及可维护性需要花费大量的时间 。
最后,我们在网上也找了一些现成的数据同步工具,要么就是收费商业很昂贵,要么SASS(不支持私有化部署,需要安装Agent),要么开源star很少没几个人维护不敢用在生产环境 。最终发现满足我们的需求:
1.支持私有化部署,整个同步过程采用Web可视化操作管理同步任务,同时还有异常监控、微信技术支持交流群(很重要,遇到问题有人解决,并且有很多技术的小伙伴相互交流)
2.提供社区版许可证,可以免费使用3个月,到期后还可以继续续期 。同时如果想获得更多的技术支持,还支持商业版,花钱享受更多的技术支持
3.支持的数据源和目标源类型很多,常见的MySQL、、、Doris、Redis等都可以支持同步
官网:
二.操作界面
使用门槛低,直接看官方文档一个脚本就能安装了 。本质上组件都是以的方式进行运行,很方便,轻量级 。后面就是从界面上进行操作即可 。
1.任务页面
2.添加数据源
三.MySQL同步到-优化 1.修改默认最大连接数
修改.xml配置文件选项:
200800
2.修改
修改users.xml配置选项
2147483648
四.许可证到期告警 1.自定义对接到
这个其实实现原理很简单,既然能在页面操作,肯定前端发送HTTP请求进行处理 。那么我们通过抓包拿到登录的URL地址进行模拟登录,抓到获取证书过期API就知道许可证还有多久过期了 。最简单的就是写一个脚本,轮询,如果发现距离证书过期还有7天则发送告警信息到企业微信或者钉钉等等 。
但是由于我们既然使用了告警体系,不想自己再写所谓的告警脚本了 。我写了一个对接,然后在设置告警即可 。直接下载二进制文件使用即可 。
项目地址:
创作不易,如有帮助给个Star?鼓励一下~?
截图如下: