我有一個使用 ElasticSearch 6.8 的 Spring Boot 應用程式,我想以最少的停機時間將其遷移到 Elasticsearch 7.16。我可以進行滾動更新,但遷移的問題是當我將我的 ES 集群從版本 6 遷移到 7 時,我的應用程式中的某些功能由于破壞性更改而失敗(例如總命中回應更改)
我還在一個單獨的分支中將我的 ElasticSearch 客戶端升級到了版本 7,我也可以部署它,但是該客戶端不適用于 ES 版本 6。所以我不能先發布應用程式,然后再進行 ES 遷移。我考慮過在停機幾個小時的情況下同時進行應用程式部署和 ES 遷移,但如果出現問題,回滾可能需要太多時間(我們在 PROD 中有超過 10TB 的資料)。
我仍然找不到解決這個問題的好方法。我正在考慮僅將 ES 資料節點遷移到 7.16 版本并將主節點保留在 6.8 中。然后進行應用程式部署和遷移 ElasticSearch 主節點,同時停機時間很小。有沒有人試過這樣做?在不同版本(6.8 和 7.16)中運行我的 ElasticSearch 集群的資料和主節點會導致問題嗎?
非常感謝任何幫助/建議
uj5u.com熱心網友回復:
您提到的重大更改可以通過在您的客戶端代碼中使用查詢字串引數來緩解,rest_total_hits_as_int=true以便保持與版本 6 中一樣的總命中數(在您共享的同一鏈接中提到)。
不支持運行不同版本的主節點和資料節點,我不會冒險。如果您有一個可以測驗此升級程序的暫存環境,那就更好了。
由于 6.8 客戶端與 7.16 集群兼容,您可以在 6.8 客戶端代碼中添加一小部分,然后您應該能夠將集群升級到 7.16。
當你的 ES 服務器升級時,你可以升級你的應用程式代碼以使用 7.16 客戶端,你會很好。
與升級一樣,由于一旦啟動就無法恢復它們,因此您應該首先在測驗環境中進行測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/463962.html
下一篇:如何在彈性搜索中進行精確匹配?
