NO IMAGE

我們採取MySQL作為主要的資料儲存,利用MySQL的事務特性維護資料一致性,使用ElasticSearch進行資料彙集和查詢,此時es與資料庫的同步方案就尤為重要。

保證es與資料庫的同步方案:
1、首先新增商品入資料庫,新增商品成功後,商品入ES,若入ES失敗,將失敗的商品ID放入redis的快取佇列,且失敗的商品ID入log檔案(若出現redis掛掉,可從日誌中取異常商品ID然後再入ES),
task任務每秒重新整理一下redis快取佇列,若是從快取佇列中取到商品ID,則根據商品ID從資料庫中獲取商品資料然後入ES。

開發es與資料庫同步小工具:
1、全量匯入
2、根據ID批量匯入