在GCP Compute引擎中托管Neo4j

时间:2016-03-19 13:31:07

标签: java web-services neo4j google-compute-engine google-cloud-platform

我想为一个维基百科的页面和类别图表托管一个Neo4j网络服务,并且基本上通过密码查询获得一些建议。 我已经创建并填充了数据库。

我如何“理想地”设置此类服务?

  • 我应该为Neo4j服务器保留1个专用实例并分开 用于运行接收客户端的Tomcat或Jetty的实例 请求然后将请求转发给Neo4j服务器实例 通过REST API?

  • 或直接从客户端向1 neo4j实例发送请求(通过REST的密码)?

  • 或者我应该选择我的Neo4j吗?

  • 或者还有其他方法可以设置它以保持缩放吗?

我计划将来运行负载平衡和HA群集。

浏览器和移动应用将访问网络服务。

我之前从未托管过这样的网络服务,所以如果有人帮助我,那就太好了。)

1 个答案:

答案 0 :(得分:1)

我建议您创建一个位于客户端和Neo4j之间的API应用。您的客户端会向API服务器发出请求,然后向Neo4j发出Cypher请求(可能是一个实例或HA群集)。

这样做的好处包括能够在API层实现缓存,在请求到达数据库服务器之前对其进行身份验证,能够通过部署到API服务器立即更新Cypher查询(想象一下,如果Cypher逻辑存在于您的移动设备中应用程序 - 您将受到应用商店/用户升级的支配),并通过部署更多API服务器轻松扩展您的API。

我已经跳过了这一层,只是使用非托管扩展来扩展Neo4j REST API并让客户端直接访问Neo4j,这对于快速实现原型很有效,但是你失去了上面列出的许多好处,还有一个额外的缺点您必须重新启动数据库才能部署新版本的非托管扩展。