【问题标题】:Use neo4j server instead of embedded mode使用 neo4j 服务器而不是嵌入式模式
【发布时间】:2015-03-01 09:40:42
【问题描述】:

我正在开发一个在 Tomcat 上运行的 webapp,它使用 spring-data 以嵌入模式连接到 neo4j 图形。 我想使用 neo4j 服务器而不是嵌入式模式,我正在寻找一些帮助来确定如何做到这一点。 我的一些应用程序服务非常困难,并且在单个事务中将多个密码请求的结果组合在一个 dto 中发送回用户。

首先我认为我必须创建一个服务器非托管扩展,我认为我应该按照以下步骤操作。 - 让我的 webapp 使用 springMVC 和 spring security 来保持和保护用户会话。 - 在特定的 jar my-app.jar 中重新组合我的所有事务服务 - 使用 Jax-RS 在 my-app.jar 的每个服务上添加 REST 访问点 - 使用我的 spring 控制器中的 spring restTemplate 之类的东西从 my-app.jar 调用服务

第一个问题:这种做事方式是好方法吗? 第二个问题:我的服务层中有很多弹簧注入。如何让它们继续工作(如何在服务器扩展中添加依赖项?

然后我发现了graphAware,我想知道是否应该改用它。

最后我刚刚读了这篇文章http://jexp.de/blog/2014/12/spring-data-neo4j-improving-remoting-performance/,看来我应该使用 SpringCypherRestGraphDatabase(在文章末尾的粗体中解释)。

好吧,我有点迷失了,如果使用 neo4j 服务器而不是包含一些复杂事务的应用程序的嵌入式模式,我将不胜感激。

【问题讨论】:

    标签: neo4j spring-data-neo4j graphaware


    【解决方案1】:

    你有很多选择,你的想法是正确的。

    选项 1:

    如果您的用例涉及大量业务逻辑,而您的问题表明确实如此,那么采用非托管扩展路线是一种选择。

    基本上,您可以结合性能最高的 Java API 和 Cypher(如果您愿意)来执行您的用例。顺便说一句,我不会在这里使用 SDN,所以您必须手动进行映射,但是真的有映射吗?也许您只想为每个用例执行遍历/密码查询。

    然后,每个用例都会公开一个简单的 REST API,由运行 Spring MVC、Spring Security 等的 Spring 驱动的应用程序使用。您可以在应用的控制器中使用 Spring 中的 RestTemplate。

    为了增加这一切,您也可以使用 GraphAware 框架来开发使用 Spring MVC 的“非托管扩展”。这将是我的首选,对您的域/应用一无所知。

    选项 2:

    按照 Michael 的建议使用新版本的 SDN (v4)。这允许您使用带注释的域对象、Spring MVC、Security 等来运行您的应用程序。操作(CRUD 和其他)会自动转换为 Cypher,并通过网络发送到在服务器模式下运行的 Neo4j(无需扩展)。然后将结果编组回 Java 对象。

    我们即将发布 SDN v4 的里程碑 1。它不应该超过一个星期。也就是说,它仍将是里程碑版本,因此尚未准备好投入生产。预计 5 月会发布 GA 版本(ish)。

    您已经可以自己尝试 SDN v4。克隆这个 repo:https://github.com/spring-projects/spring-data-neo4j,确保你在 4.0 分支上,然后在上面做一个mvn clean installHere's a sample app,使用 Angular JS 和 Spring Boot 构建。

    请务必联系反馈/问题/问题(最好通过 graphaware dot com 的电子邮件信息)。干杯!

    【讨论】:

    • 非常感谢。我要稍等片刻,看看我能用它做什么。
    【解决方案2】:

    我建议您稍等一下,直到 SDN4 Milestone 1 出现(由 GraphAware 开发),它是为 Neo4j-Server 从头编写的。

    【讨论】:

    • 你知道这个版本的路线图吗?请问什么时候可以使用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    相关资源
    最近更新 更多