場景
- elasticsearch對機器的要求非常高,個人租個集羣還是非常耗錢;所以在自己的筆記本上docker建了四個容器 組了個集羣;
這個集羣是用來做線上搜索功能的,那怎麼利用呢?
分析
- 服務器找不到集羣,集羣(筆記本)是可以訪問到我的服務器; 可以利用這一點進行數據交換, 服務器提供請求參數, 集羣(筆記本) 提供搜索結果
- 請求的流程
- 微信小程序 ==> 服務器 ⇒ 集羣 ==> 服務器 ==> 微信小程序
解決
- 因爲elasticserach的搜索時非常快的, 所以沒有建立異步模型
- 實現
- 服務器將收到的請求參數放入redis隊列, 等待hash存貯的結果
- 集羣容器的常駐腳本消費隊列並將結果hash存儲起來
- 服務器處理hash中搜索結果, 並返回請求結果