1

我想爲維基百科頁面和類別圖形託管一個Neo4j Web服務,基本上通過密碼查詢得到一些建議。 我已經創建並填充了數據庫。在GCP中託管Neo4j計算引擎

我如何「理想地」設置這樣的服務?

  • 我要保持1個專用實例爲Neo4j的服務器和獨立 實例的運行Tomcat或Jetty其收到客戶端的 請求,然後轉發通過REST API請求到Neo4j的服務器實例 ?

  • 或直接從客戶端發送請求(通過REST的密碼)到1 neo4j實例?

  • 或者我應該選擇非託管擴展提供我的Neo4j?

  • 或者還有其他的方式來設置它,以保持縮放?

我打算在未來運行負載平衡和HA集羣。

Web服務將被瀏覽器和移動應用程序訪問。

我從來沒有主持這樣一個Web服務之前,因此,如果有人可以幫助我了:)

回答

0

我建議你創建你的客戶和Neo4j的坐在之間的API的應用程序將是巨大的。您的客戶會向API服務器發出請求,然後向Neo4j請求一個Cypher請求(可能是一個實例或HA集羣)。

這樣做的好處包括能夠在API層實現緩存,在請求到達數據庫服務器之前認證請求,能夠通過部署到API服務器來即時更新Cypher查詢(想象一下,如果Cypher邏輯住在您的移動應用程序 - 您將受到應用程序商店/用戶升級的支配),並通過部署更多API服務器輕鬆擴展您的API。

我已經跳過這一層,只是使用非託管擴展來擴展Neo4j REST API,並讓客戶端直接訪問Neo4j,這對於快速實現原型來說工作正常,但是你失去了上面列出的許多好處,您必須重新啓動數據庫才能部署新版本的非託管擴展。

+0

謝謝,它爲我清除:)我應該使用JDBC或REST API從位於我的客戶端和Neo4j之間的API應用程序服務器與Neo4j服務器通信?就速度和性能而言,哪種方法更快:JDBC還是Neo4j服務器REST API? – Dev