关于分布式技术:
- 学习深入浅出分布式技术原理专栏(35讲) 初步了解了分布式系统的概念。
关于Go语言学习:
- 韩顺平《Go语言入门到实战教程》
- 极客时间《Go语言核心36讲》
- 学习GoWeb编程一书
- 学习Go语言并发编程。
- 通过 Go 语言学习测试驱动开发(依赖注入、Mocking等)
- 学习生产环境Go程序内存泄漏,如何用pprof进行快速定位。
- 学习go的内存模型,因为有内存重排或者编译器重排,多个goroutine访问共享数据时可能产生未定义行为。这需要理清happen-Before、store buffer 、single machine word相关底层概念。
- 避免 data race 通常使用sync 、sync/atomic来保护数据。
- 在微服务降级或者local cache 场景中经常使用Copy-On-Write思路。类比redis中的bgSave()
关于MQ:
- 了解了kafka基本工作原理
- 了解了RocketMQ集群搭建方式和集群工作流程
- 消息队列高手课基础篇
- 消息队列高手课进阶篇
关于框架:
- 学习Gin和Beego框架
- 学习Go RESTful API接口开发
- 学习GORM库,GORM模型的创建和关键标签
- 熟悉了GORM CURD基本操作方式
- GORM 1对1关系,1对多关系以及预加载用法
- GORM引用和关联标签
- 熟悉GORM事务操作及自定义数据类型
关于Mysql:
- Mysql实战45讲8讲
- 熟悉在GTID模式下,一主多从主备切换流程。
- 熟悉binlog二进制日志的格式及对应的事件作用。
关于Docker:
- 学习Docker容器化技术,熟悉了基本概念以及使用方法。
关于Kubernetes: 学习Kubernetes集群搭建
关于DTS(旧)学习部分:
- 初步了解DTS数据同步服务全量组件中的数据同步的基本操作流程
- 总结了几种常见的线上问题的解决方法
- 开始阅读项目代码,结合代码熟悉DTS数据同步服务全量组件中的订阅流程。
- 学习如何在数据同步平台创建数据源、创建自动化同步任务和自动化订阅任务
- 熟悉项目代码分支合并细节
- 熟悉打包镜像并发布到镜像中心,并在数据同步平台创建docker模板
- 用思维导图绘全量同步流程。
- 学习并处理线上出现的常规问题,归纳群内反馈的线上问题形成文档。
- 熟悉DTS自动化服务代码
- DTS相关文档整理
关于DTS(旧)新增功能及BUG修复部分:
- 上线机器人报警功能。
- 优化全量组件的错误提示。
- 增加全量支持过滤表的功能。
- 修复联合主键的情况下任务数据量切割不合理导致的问题。
- 修复同步联合主键表时出现的问题(完成了当主键是整型时问题的修复)。
- 重新优化同步联合主键表数据查询算法。
- 解决dataSizeLimit配置超过等于prepare允许值,未报错的问题
- 解决dataSizeLimit配置少于存在相同记录数,数据同步后出现丢失数据的问题
- 解决配置切分任务的键为str,当切割时,value的值为特殊字符,查询语句拼接错误的问题
- 协助修复全量字符串转义问题(不间断空格、Bit(1)支持)
- 新增数据查询接口,根据数据源id 获取升级双中心的任务。
- 协助修复全量字符串转义问题(不间断空格、Bit(1)支持)
- 全量写入hdfs问题跟进
- 修复投递MQ时,错误不提示的问题
DTS全量(新)重构部分:
- 利用生产消费者模式重构全量分发任务和执行任务流程
- 测试单连接单次select数据的性能
- 确定查询数据的重构方案
- 不在对单主键和联合主键进行区分,兼容两者从而降低代码复杂性。
- 全量任务队列由无限缓冲的Channel换为有限缓冲的Channel,避免未来任务数量过大可能引发内存不足的隐患。
- 业务代码配合标准库和kit库优化错误提示信息,提示信息更加精准。
- 熟悉增量工作流程
- 实现inbound接口,支持从数据源拉取数据,配合outbound走通从源端到目标端hdfs的数据传输流程。
- 优化Inbound接口,配合过滤规则,完成同步的库表的过滤过程。(review阶段.....)
其他事项: 1、调研Go的HDFS和SD
2、学习使用JWT进行身份校验
3、编写一个简单文件日志模块
4、学习使用gin-swagger自动生成API文档
5、补充数据库原理知识
6、学习微服务概览与治理方案
7、学习Hadoop3.0,了解背景、集群搭建流程,HDFS组件工作方式及操作方法