DB与ES保持异地同步的四种思想

142 阅读1分钟

1.1 同步双写

把数据写入DB的同时写入ES。

优点:实时性强。

缺点:硬编码问题,代码量较大。

1.2 异步双写------针对多源数据写入

把数据写入DB的时候,通过MQ写入ES。

优点:性能高

缺点:硬编码问题

          中间件增加,导致内容繁杂

1.3 基于SQ的数据抽取

使用定时器写入,每隔一段时间自动扫描原表,对原表中做出CURD操作的数据进行备份,对ES进行修改

优点:没有硬编码问题

缺点:实时性较差,用户无法得到实时的数据修改之后的数据。

          对数据库的轮询压力大,(改进)把一部分的轮询放到从表。

1.4 基于Binlog

读取MYSQL的binlog日志,编写一个MQ消费程序,

优点:没有代码侵入、没有硬编码;原有系统不需要任何变化,没有感知;性能高;业务解耦,不需要关注原来系统的业务逻辑。

缺点: