一、前言
要实时同步数据,首先要能实时的监控到数据库数据的变化,可以使用canal、Maxwell 等工具完成。我选用canal,因为它更灵活,更合格我的项目需求。
二、通过canal监控数据库数据变化
Canal安装教程:https://www.aliyun.com/jiaocheng/1117575.html
三、项目整体架构
项目整体架构、离线同步:https://blog.csdn.net/beyond_qjm/article/details/83623738
四、主要代码
import com.alibaba.otter.canal.client.CanalConnector;
import com.alibaba.otter.canal.client.CanalConnectors;
import com.alibaba.otter.canal.protocol.CanalEntry;
import com.alibaba.otter.canal.protocol.CanalEntry.*;
import com.alibaba.otter.canal.protocol.Message;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.util.Bytes;
import qjm.data.synch.hbase.HbaseSerialization;
import qjm.data.synch.hbase.HbaseUtils;
import qjm.data.synch.modle.Employee;
import qjm.data.synch.service.SqlDataService;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.List;
/**
* 实时同步数据
*/
public class OnlineSynch {
static final Log LOG = LogFactory.getLog(OnlineSynch.class);
SqlDataService sqlDataService = new SqlDataService("SqlMapConfig.xml");
Hba