一、主要技术栈
Kafka,MySQL ,设计模式,分层架构
二、项目介绍
这个服务,简单来说,就是去定时监听 MySQL 数据表的变更操作(insert,update,delete),然后通过 kafka 将变更记录的主键信息同步给下游消费者。
1、使用者首先需要调用接口,指定监听的数据表、数据库连接信息以及监听周期。调用成功后,即刻就开始对数据表定时监听。
2、使用者可以编辑上述配置。编辑后,之前的监听服务会停止,然后使用最新的配置,重启一个新的监听任务。
3、使用者可以删除上述配置。删除后,之前的监听任务会停止。
三、项目特色
1、该服务包含了对配置变更和监听任务的管理。监听任务如何开启、停止、定时监听,都需要以变更(或删除)配置为前提。
2、该服务有“断点续传”功能。如果服务崩溃或者重启,可以从上一次同步成功的节点继续同步。
3、该服务目前不存在“丢失数据”的风险。
4、api 方便用户使用,避免了类似 kafka connector 等工具,操作过于复杂的难题。
5、该服务有“断线重连”的特点。如果服务与监听数据库“断联”,具有重试机制。
6、 项目框架运用了各种设计模式(策略模式、单例模式、抽象工厂模式等),代码显得更加优雅和健壮。
7、 项目框架跳出了传统的“controller-service-dao ”的模式,采用了隔离性更强的代码分层架构,通过依赖反转的手段,让各个层次之间互不干扰,并且可以实现针对各层进行单独的单测。