【问题标题】:Python and graph database. Use java lib wrapper or REST api?Python 和图形数据库。使用 java lib 包装器或 REST api?
【发布时间】:2025-12-24 03:05:05
【问题描述】:

我想问一下在 Python 中使用图形数据库 (Neo4j) 的最佳方式。你认为,我应该使用“neo4j/python-embedded”(neo4j/python-embedded 与 JPype)还是“bulbflow”(bulbflow,与 Rexster、Gremlin 和 REST api)? REST api 是否安全并提供高可用性(例如 500 000 多个用户)?

谢谢。

【问题讨论】:

    标签: python graph neo4j bulbs gremlinpython


    【解决方案1】:

    您可以将灯泡(http://bulbflow.com/) 与 Neo4j 服务器或 Rexster 一起使用:

    >>> from bulbs.neo4jserver import Graph
    >>> g = Graph()
    >>> g.vertices.create(name="James")
    >>> g.vertices.create(name="Julie")
    >>> g.edges.create(james, "knows", julie)
    

    或者要使用 Rexster,只需更改导入:

    >>> from bulbs.rexster import Graph
    >>> g = Graph()
    >>> g.vertices.create(name="James")
    >>> g.vertices.create(name="Julie")
    >>> g.edges.create(james, "knows", julie)
    

    请注意,尽管使用 Rexster,它支持多个图形数据库,因此请确保更改配置中的默认 DB URI:

    >>> from bulbs.rexster import Graph, Config
    >>> config = Config('http://localhost:8182/graph/neo4jsample')
    >>> g = Graph(config)
    >>> ...
    

    【讨论】:

      【解决方案2】:

      我认为 Bulbs 与 Neo4j Server 可能是最好的组合。此外,您可以将 Neo4j 设置为高可用性模式,以便多个实例形成一个集群,http://docs.neo4j.org/chunked/snapshot/ha.html 应该可以处理您的负载情况。

      【讨论】:

      • 对于 HA 配置,客户端必须命中集群的一个节点。使用 HAProxy(或类似的)来确定要命中的节点