服务迁移之《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. ...
随机推荐
- Spring —— bean配置
基础配置 别名配置 作用范围配置 适合交给容器进行管理的bean (复用性的对象,无需重复创建的对象) 表现层对象 业务层对象 数据层对象 工具对象 不适合交给容器管 ...
- android ion
1. 简介 Android的ION子系统的目的主要是通过在硬件设备和用户空间之间分配和共享内存,实现设备之间零拷贝共享内存.说来简单,其实不易.在Soc硬件中,许多设备可以进行DMA,这些设备可能有不 ...
- 如何理解iowait
Linux中,%iowait 过高可能是个问题,严重的时候,它能使服务停止, 但问题是,多高才算高? 什么时候应该担心呢? 本文将讨论 iowait 的含义.相关的统计数据.原理以及 iowait的瓶 ...
- ArgoWorkflow教程(六)---无缝实现步骤间参数传递
之前我们分析了,Workflow.WorkflowTemplate .template 3 者之间如何传递参数. 本文主要分析同一个 Workflow 中的不同 step 之间实现参数传递,比如将上一 ...
- 墨天轮国产数据库沙龙 | 胡彦军:华为GaussDB迁移工具解密
在共同推进国产化生态发展的进程下,墨天轮正式推出"墨天轮国产数据库沙龙"系列直播活动,将定期邀请各国产数据库产品专家.掌门人,共同探讨如何达成技术"自主可控"的 ...
- 墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联
分享嘉宾:胡津铭 DolphinDB研发副总监 整理:墨天轮社区 导读 DolphinDB是高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储. ...
- webpack与grunt、gulp的不同
首先,它们的共同点三者都是前端构建工具,grunt和gulp早期比较流行,现在 webpack 是主流: 区别:grunt 和 gulp 基于 任务和流 : webpack 基于入口文件,webpac ...
- KubeSphere 社区双周报|2024.04.26-05.09
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- NeuVector 会是下一个爆款云原生安全神器吗?
近日一则<SUSE 发布 NeuVector:业内首个开源容器安全平台>的文章被转载于各大 IT 新闻网站.作为 SUSE 家族的新进成员,在 3 个月后便履行了开源承诺,着实让人赞叹.那 ...
- 修复 K8s SSL/TLS 漏洞(CVE-2016-2183)指南
前言 测试服务器配置 主机名 IP CPU 内存 系统盘 数据盘 用途 zdeops-master 192.168.9.9 2 4 40 200 Ansible 运维控制节点 ks-k8s-maste ...