2016-08-04 18 views
6

我在我的spring web mvc項目(spring-data-elasticsearch)中使用elasticsearch並與數據庫(MySQL)同步。使用Mysql同步Elasticsearch的最佳方法

我從我的應用程序索引文檔,如果有任何新的實體要從服務層同時添加數據庫表,我也要求將此文檔索引到elasticsearch。

db表和elasticsearch索引都有相同的數據並刪除和更新操作我使用相同的概念,在elasticsearch和db表上執行更改操作,它工作正常。

現在我想知道這種方法的disadvantages是什麼。

或者是否有任何最好的方式使我們的elasticsearch索引最新從數據庫。我使用logstash但刪除的實體如何?

+1

此答案可能有所幫助:http://stackoverflow.com/問題/ 34477095/elasticsearch-複製的,其他系統數據/ 34477639#34477639 – Val

回答

1

同步索引的缺點是如果在創建索引數據時發生錯誤,則不會重試。

在你的地方,我將創建一個cronjob /批(觸發這取決於有多少數據被更新,是多麼的重要指標的更新) 而這項工作將與日誌執行狀態

,你將有有關指數的清晰的思路,沒有丟失數據

且索引可以完整的索引模式&的更新索引模式(你應該在你的表添加一個更新日期)

索引策略有兩個階段,並你可以選擇TWO_PHASES:你需要master & slave ==>在主服務器上執行索引時,從服務器將響應請求並在索引結束時同步DIRECT_MODE:drop index &創建新服務器

相關問題