gpt4 book ai didi

jakarta-ee - Tinkerpop - Titan/Cassandra 项目设置

转载 作者:行者123 更新时间:2023-12-02 21:24:13 26 4
gpt4 key购买 nike

我正在设置一个 Java Enterprise 1.7 项目,该项目将 TinkerPop 3 和 Titan 0.5 与 Cassandra 结合使用。

总体思路是:

  1. 运行 Titan 0.5 的专用数据库服务器,
  2. Tinkerpop 3 某处
  3. 运行与数据库服务器分离的 Java EE 7 应用程序的应用程序服务器。

我有很多悬而未决的问题,我想询问最佳实践建议示例

  1. Tinkerpop 3 应该住在哪里?在应用程序服务器中还是在数据库服务器中?
  2. Tinkerpop 如何与 Titan 通信?
  3. Tinkerpop with Titan 的此类环境的最佳配置是什么?
  4. Java Enterprise 应用程序应如何与 Tinkerpop 通信?
  5. Tinkerpop API 应如何与 Java EE 集成?请记住同时有多个用户和一般企业环境问题(缓存、事务、对数据库的多次调用等)
  6. 您有项目设置示例吗?

此基本配置最终将放入 github ot bitbucket 中,为其他项目做好准备。

最佳答案

Titan 有点像数据库,但也有点像 GraphDB 驱动程序。我这样说是因为无论您选择什么配置,Titan 都会使用另一个数据库作为存储后端。当前选项包括 BerkeleyDB、HBase 和 Cassandra。 This page描述 Cassandra 的系统架构选项。

我使用remote server mode用于 Java Web 应用程序。我单独运行 Cassandra,并在每个应用程序服务器中使用 Titan 通过 thrift 与 Cassandra 进行通信(Titan 还支持 astyanax)。我创建一个 TitanGraph 实例并将其(通过工厂 bean 包装器)注入(inject)到任何需要访问该图的服务 Bean 中。

TitanGraph 将处理事务级和数据库级缓存。这是可配置的。

TitanGraph 将处理并发操作。关键是让您的交易正确。您可以通过让事务与请求以 1:1 的比例存在来开始。请记住,读取操作也发生在事务中(这有时会让新手感到困惑)。

我尽可能坚持使用蓝图 API (TinkerPop),但通常我需要做一些泰坦特定的事情 - 通常与搜索相关。我通常将 TinkerPop 用于:

(这只是一个简短的示例列表,但这是我几乎总是做的事情。)

我没有公共(public)项目示例,但我确实应该有。也许这个周末我会有时间吐点东西。

Here is an example web app它使用 Spring、JAX-RS 和 Jersey。

关于jakarta-ee - Tinkerpop - Titan/Cassandra 项目设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com