2017-02-08 21 views
0

我有一個用戶使用的REST服務,並在其前面有一個Varnish緩存來保護數據庫免受太多請求。使用Varnish和elasticsearch是不是一個糟糕的建築選擇?

新的要求來了能夠執行快速搜索我們的服務所暴露的數據集,我們開始使用Elasticsearch來達到此目的。

保持清漆和彈性都是不好的方法嗎?我們應該只使用Elasticsearch嗎?

注意:Elastic是NRT系統的事實不是問題。

感謝

回答

1

我不認爲這是一個問題,只是只要你意識到他們正在爲解決不同的問題,你可能不應該讓你委託給elasticsearch清漆緩存任何東西。

所以我們的拱(超高層)看起來像負載均衡>清漆>的Apache Web機

那些Web機器有作爲後端都elasticsearch和MySQL(除其他事項外)。

我們的網站主要分爲兩個主要領域1.)主頁和類似網站,主要由CMS和服務器上呈現的HTML驅動。 2.)具有平靜端點的單頁網絡應用程序。客戶端負責渲染自己的HTML(我們在這裏使用反應)。

對於較重的CMS的東西,我們做清漆緩存我們可以。對於依賴elasticsearch的任何事情,我們讓清漆傳遞這些請求。我們的這種類型的URL模式是可預測的,所以它只是varnish.vcl中的一個節。

想法是,搜索應該是最新的。我們也不會將ES用於CMS類型的東西,而是將更多的單頁網絡應用程序放到我們的網站中。 CMS的內容每天只會改變幾次,但SPA內容在整個集羣中都有不斷的變化(每秒大約25次索引操作)。

0

考慮到這:https://github.com/elastic/elasticsearch/issues/16024

光油剔除GET請求的JSON身體,因爲它是無效的。因此直接在Elastic Search之前添加它可能會帶來麻煩。在Elastic Search之前爲搜索查詢添加一個簡單的API可能會有所斬獲。

相關問題