我们大概是从2022年十月份开始进行拆分的。面对一百多个服务的时候,真的是无从下手,然后公司突然空降了一个从阿里出来的架构师,然后就带着我们大刀阔斧的整体迁移。

先是服务器购买阿里云的,然后从几个核心的服务开始迁移,发现会依赖很多的基础的原子服务。然后就开始迁移基础,基础服务迁移过来后,对应的很多中间件都要迁移到阿里云上。这样理论上分析是可行的,但是,当测试进行车机测试的时候发现,充电后计费数据在APP上没有显示。

然后就去追接口,这时候发现这个数据在车联。。原本没有拆分的时候,都在帆一云上,是可以直接查询的,现在迁移后,这个数据就没有过来。所以,这里面临的问题就是,要把帆一云上的车联的数据实时的同步过来。(刚开始整体迁移的时候,数据库是用阿里云的数据库同步工具同步的,服务迁移完成以后就会把这个同步工具给关了,这中间我们整体迁移一共经历了三次才成功)

增量数据实时同步,业界也有几种方案。其中架构师让我去调查一下解决方案,还推荐让我使用mysql-binlog-connector-javas这个组件去做个demo。这个组件虽然是具备了同步数据的基本功能,但是不够完美,它会存在以下问题:如果我们部署的服务是多个节点,我们还要去解决重复问题、负载均衡问题,还要自己去保证高可用问题。然后就去对比了一下canal,以下是考虑到的因素:

影响因素 组件方式 canal中间件
部署需要的资源 直接引入一个jar包 需要部署server,并且依赖于zk,然后使用client sdk
是否高可用 否 
是否可扩展 不能,因为需要自己写代码控制防重问题 集群可扩展
是否能堆积消息 不能,需要自己写持久层才能堆积消息 自带堆积功能,重联续传
有序性 自己代码控制 server保证
并发性、高性能 全程手动控制,遇到集群只能分布式锁 server保证
安全性 自己代码控制,不确定 server保证

最终,使用了canal方案。然后就是一系列夸团队沟通协调,找了很多人才搞定了基础环境。比如:发邮件走流程进行资源申请;发邮件找车联团队相关技术开binglog同步权限和账号;发邮件找基础运维搭建基础环境; 发邮件找双方的安全进行开墙,打通网络;最后是找运维、测试搞定黑白盒测试,发布流水线上线服务;

最终上线以后数据是同步过来了,但是运行了一段时间以后突然发现服务开始出现错误日志了,然后发现ddl语句也通过来了,然后没有权限执行。最后经过约定,就是数据表变更的时候提前通知一下。理论上是不会变的。这里不是技术上不能同步表结构变更,是因为变更后会带来业务问题。

服务迁移之《mysql数据同步问题》的更多相关文章

  1. Tomcat性能优化(转载)

    出处:微信订阅号GitChat精品课程 — Tomcat性能优化 Tomcat 简单介绍 Sun 公司创建了第一个 Servlet 容器,即 Java Web Server,但 JWS 只是为了演示 ...

  2. [转] 携程App网络服务通道治理和性能优化@2016

    App网络服务的高可靠和低延迟对于无线业务稳定发展至关重要,过去两年来我们一直在持续优化App网络服务的性能,到今年Q2结束时基本完成了App网络服务通道治理和性能优化的阶段性目标,特此撰文总结其中的 ...

  3. tomcat 性能优化

    tomcat 性能优化tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. tomcat内存优化linux修改TOMCAT_HOME/bin/ ...

  4. tomcat 性能优化(内存优化 线程优化)

    转自:http://blog.sina.com.cn/s/blog_4b5bc01101014s81.html tomcat 性能优化 linux修改TOMCAT_HOME/bin/catalina. ...

  5. Tomcat性能优化之(一) 启动GZIP压缩

    Tomcat性能优化之(一) 启动GZIP压缩 1:设置TOMCAT启用GZIP压缩,通过浏览器HTTP访问对应的资源会根据配置进行压缩. <Connector port="8080& ...

  6. JVM虚拟机详解+Tomcat性能优化

    1.JVM(java virtual mechinal) ()JVM有完善的硬件架构,如处理器.堆栈.寄存器当,还具有相应的指令系统. ()JVM的主要工作时解释自己的指令集(即字节码),并映射到本地 ...

  7. tomcat性能优化梳理

    tomcat性能优化 Tomcat本身优化 Tomcat内存优化 启动时告诉JVM我要一块大内存(调优内存是最直接的方式) 我们可以在 tomcat 的启动脚本 catalina.sh 中设置 jav ...

  8. 闲谈Tomcat性能优化

    Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. 幸好Tomcat还有很多的提升空间.下文介 ...

  9. tomcat 性能优化(转)

    tomcat nginx默许的post大小限制 tomcat nginx默认的post大小限制执行大文件上传,或者,大数据量提交时,当提交的数据大小超过一定限制时,发现后台从request取值的代码r ...

  10. Tomcat性能优化及JVM内存工作原理

    Java性能优化原则:代码运算性能.内存回收.应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化:避免过多循环嵌套.调用和复杂逻辑. Tomcat调优主要内容如下: 1. ...

随机推荐

  1. String 的 intern() 方法

    问题: String s1 = "a" + "b"; //创建了几个对象? String s2 = new String("ab"); // ...

  2. ModbusTCP通信协议分析

    前言 大家好!我是付工.前面给大家介绍了一系列关于RS485与Modbus的知识. 终于有人把RS485说清楚了 终于有人把Modbus说明白了 通透!终于把ModbusRTU弄明白了 今天跟大家聊聊 ...

  3. Android Systrace 基础知识 -- Why 60 fps ?

    1.正文 今天来讲一下为何我们讲到流畅度,要首先说 60 帧. 我们先来理一下基本的概念: 60 fps 的意思是说,画面每秒更新 60 次 这 60 次更新,是要均匀更新的,不是说一会快,一会慢,那 ...

  4. 数据库小白看这里,这个Oracle数据库知识图谱你值得拥有(含MySQL、PG图谱)

    2022年前后,墨天轮社区曾陆续推出PostgreSQL知识图谱.MySQL知识图谱,并得到了大家的广泛好评.此后,便有众多朋友对Oracle知识图谱发起不断"催更".经过近期的内 ...

  5. 007 Python、Anaconda、pip、Pycharm、Jupyter都是啥?

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  6. 安装gd库出错

    最近手痒,就安装了一个centos 6.5玩玩. 由于新的centos的当前版本已经达到7.1. 而且最糟的是在本人不小心的时候在安装软件的时候, 确定里里面的更新系统命令,导致版本变为了6.9. 然 ...

  7. Ubuntu 22.04 全局快捷键失效问题

    安装完 Ubuntu 22.04 后,你有可能会发现系统的快捷键失效了.侧栏用 Win + x 选中程序不可用了.为各种应用程序设置的快捷键也不起作用了. 出现此现象的原因,是因为 Ubuntu 22 ...

  8. 比较var和let的区别

    什么是作用域 块级作用域:即在{}花括号内的域,由{ }包括,比如if{}块.for(){}块.注意函数快也叫做块 函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体都是有定义的. JS ...

  9. WebStorm 和 Rider 现在对非商业用途免费

    JetBrains 在程序员节这一天在官方博客上发布了一篇文章:<WebStorm 和 Rider 现在对非商业用途免费>宣布了JetBrains将WebStorm和Rider IDE对非 ...

  10. 基于Java+SpringBoot心理测评心理测试系统功能实现七

    一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...