【问题标题】:Tinkerpop - Titan/Cassandra project setupTinkerpop - Titan/Cassandra 项目设置
【发布时间】:2014-09-04 09:58:12
【问题描述】:

我正在建立一个 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 或 bitbucket 中,为其他项目做好准备。

【问题讨论】:

    标签: jakarta-ee architecture cassandra titan tinkerpop


    【解决方案1】:

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

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

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

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

    我尽可能使用 Blueprints API (TinkerPop),但通常我需要做一些 Titan 特定的事情——通常与搜索相关。我通常将 TinkerPop 用于:

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

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

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

    【讨论】:

    • 真正有用的信息!希望你能抽空分享一个公共项目的例子!
    • 只需要补充一点:Titan 0.5 与 TP3 不兼容,仅与 TP2 兼容。 Titan 0.9(下一个版本)将与 TP3 一起使用。
    • @AndreaT 我添加了一个指向 titan-web-example 的链接。
    猜你喜欢
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2017-04-02
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多