服务迁移之《mysql数据同步问题》
我们大概是从2022年十月份开始进行拆分的。面对一百多个服务的时候,真的是无从下手,然后公司突然空降了一个从阿里出来的架构师,然后就带着我们大刀阔斧的整体迁移。
先是服务器购买阿里云的,然后从几个核心的服务开始迁移,发现会依赖很多的基础的原子服务。然后就开始迁移基础,基础服务迁移过来后,对应的很多中间件都要迁移到阿里云上。这样理论上分析是可行的,但是,当测试进行车机测试的时候发现,充电后计费数据在APP上没有显示。
然后就去追接口,这时候发现这个数据在车联。。原本没有拆分的时候,都在帆一云上,是可以直接查询的,现在迁移后,这个数据就没有过来。所以,这里面临的问题就是,要把帆一云上的车联的数据实时的同步过来。(刚开始整体迁移的时候,数据库是用阿里云的数据库同步工具同步的,服务迁移完成以后就会把这个同步工具给关了,这中间我们整体迁移一共经历了三次才成功)
增量数据实时同步,业界也有几种方案。其中架构师让我去调查一下解决方案,还推荐让我使用mysql-binlog-connector-javas这个组件去做个demo。这个组件虽然是具备了同步数据的基本功能,但是不够完美,它会存在以下问题:如果我们部署的服务是多个节点,我们还要去解决重复问题、负载均衡问题,还要自己去保证高可用问题。然后就去对比了一下canal,以下是考虑到的因素:
| 影响因素 | 组件方式 | canal中间件 |
| 部署需要的资源 | 直接引入一个jar包 | 需要部署server,并且依赖于zk,然后使用client sdk |
| 是否高可用 | 否 | 是 |
| 是否可扩展 | 不能,因为需要自己写代码控制防重问题 | 集群可扩展 |
| 是否能堆积消息 | 不能,需要自己写持久层才能堆积消息 | 自带堆积功能,重联续传 |
| 有序性 | 自己代码控制 | server保证 |
| 并发性、高性能 | 全程手动控制,遇到集群只能分布式锁 | server保证 |
| 安全性 | 自己代码控制,不确定 | server保证 |
最终,使用了canal方案。然后就是一系列夸团队沟通协调,找了很多人才搞定了基础环境。比如:发邮件走流程进行资源申请;发邮件找车联团队相关技术开binglog同步权限和账号;发邮件找基础运维搭建基础环境; 发邮件找双方的安全进行开墙,打通网络;最后是找运维、测试搞定黑白盒测试,发布流水线上线服务;

最终上线以后数据是同步过来了,但是运行了一段时间以后突然发现服务开始出现错误日志了,然后发现ddl语句也通过来了,然后没有权限执行。最后经过约定,就是数据表变更的时候提前通知一下。理论上是不会变的。这里不是技术上不能同步表结构变更,是因为变更后会带来业务问题。
服务迁移之《mysql数据同步问题》的更多相关文章
- Tomcat性能优化(转载)
出处:微信订阅号GitChat精品课程 — Tomcat性能优化 Tomcat 简单介绍 Sun 公司创建了第一个 Servlet 容器,即 Java Web Server,但 JWS 只是为了演示 ...
- [转] 携程App网络服务通道治理和性能优化@2016
App网络服务的高可靠和低延迟对于无线业务稳定发展至关重要,过去两年来我们一直在持续优化App网络服务的性能,到今年Q2结束时基本完成了App网络服务通道治理和性能优化的阶段性目标,特此撰文总结其中的 ...
- tomcat 性能优化
tomcat 性能优化tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. tomcat内存优化linux修改TOMCAT_HOME/bin/ ...
- tomcat 性能优化(内存优化 线程优化)
转自:http://blog.sina.com.cn/s/blog_4b5bc01101014s81.html tomcat 性能优化 linux修改TOMCAT_HOME/bin/catalina. ...
- Tomcat性能优化之(一) 启动GZIP压缩
Tomcat性能优化之(一) 启动GZIP压缩 1:设置TOMCAT启用GZIP压缩,通过浏览器HTTP访问对应的资源会根据配置进行压缩. <Connector port="8080& ...
- JVM虚拟机详解+Tomcat性能优化
1.JVM(java virtual mechinal) ()JVM有完善的硬件架构,如处理器.堆栈.寄存器当,还具有相应的指令系统. ()JVM的主要工作时解释自己的指令集(即字节码),并映射到本地 ...
- tomcat性能优化梳理
tomcat性能优化 Tomcat本身优化 Tomcat内存优化 启动时告诉JVM我要一块大内存(调优内存是最直接的方式) 我们可以在 tomcat 的启动脚本 catalina.sh 中设置 jav ...
- 闲谈Tomcat性能优化
Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. 幸好Tomcat还有很多的提升空间.下文介 ...
- tomcat 性能优化(转)
tomcat nginx默许的post大小限制 tomcat nginx默认的post大小限制执行大文件上传,或者,大数据量提交时,当提交的数据大小超过一定限制时,发现后台从request取值的代码r ...
- Tomcat性能优化及JVM内存工作原理
Java性能优化原则:代码运算性能.内存回收.应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化:避免过多循环嵌套.调用和复杂逻辑. Tomcat调优主要内容如下: 1. ...
随机推荐
- 【VMware VCF】使用 VCF Import Tool 将现有 vSphere 环境转换为管理域。
VMware Cloud Foundation 5.2 发布并引入了一个新的功能,借助 VCF Import Tool 工具可以将现有 vSphere 环境直接转换(Convert)为管理工作负载域或 ...
- 2款.NET开源且免费的Git可视化管理工具
Git是什么? Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发.Git最初是由Linux开发者Linus Torvalds创建的,它具有高效.灵活.稳定等优 ...
- 【赵渝强老师】利用Python完成数据分布特征的分析
在对数据的质量进行分析后,接下来就可以对数据的特征进行分析和计算,也可以通过绘制图表对数据的特征进行展示.数据的特征分析通过有以下几种方式:分布分析.对比分析.统计量分析.周期性分析.贡献度分析(帕累 ...
- 搜广推算法校招面试:BOSS直聘 推荐搜索系统工程师
本文介绍2024届秋招中,BOSS直聘的推荐/搜索系统工程师岗位一面的面试基本情况.提问问题等. 2023年12月,赶在秋招的末尾,投递了BOSS直聘的推荐/搜索系统工程师岗位,并不清楚所在的 ...
- 2024年2月中国数据库排行榜:PolarDB夺魁首登顶,TiDB攀升回探花
银装素裹覆大地,春意初醒待来临.2024年2月墨天轮中国数据库流行度榜单出炉,表现最亮眼的无疑是PolarDB,其自23年7月以来一路高歌猛进,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势,Oc ...
- 基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台
KubeSphere 开源社区的小伙伴们,大家好.我是微众银行大数据平台的工程师周可,接下来给大家分享的是基于 WeDataSphere 和 KubeSphere 这两个开源社区的产品去构建一个云原生 ...
- KubeSphere Helm 应用仓库源码分析
作者:蔡锡生,LStack 平台研发工程师,近期专注于基于 OAM 的应用托管平台落地. 背景介绍 KubeSphere 应用商店简介 作为一个开源的.以应用为中心的容器平台,KubeSphere 在 ...
- 云原生爱好者周刊:mist.io 开源多云管理平台
开源项目推荐 Mist Mist 是一个开源的多云管理平台,它提供了跨云和内部基础设施的可观测性,以及生命周期管理能力.同时还提供了一些功能更强大的商业组件. rga rga 是一个类似于 grep ...
- 为什么会有unknown模块
当一个模块在free后,他的线程仍然在运行时,会导致GetModuleName失败,返回unknown
- nginx配置tomcat的负载均衡记录
实现效果 (1)浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均在 8080和 8081 端口中. 准备工作 (1)准备两台 tomcat 服 ...