使用BerkeleyDB的TitanDB或JanusGraph(由TitanDB 1.0.0分支)可以同時嵌入Java或獨立服務器。
如果你使用Maven,那麼在POM文件中添加這些依賴關係:
<dependency>
<groupId>com.thinkaurelius.titan</groupId>
<artifactId>titan-core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.thinkaurelius.titan</groupId>
<artifactId>titan-berkeleyje</artifactId>
<version>1.0.0</version>
</dependency>
示例代碼:
ModifiableConfiguration config = GraphDatabaseConfiguration.buildGraphConfiguration();
config.set(GraphDatabaseConfiguration.STORAGE_BACKEND, "berkeleyje");
config.set(GraphDatabaseConfiguration.STORAGE_DIRECTORY,"data");
TitanGraph graph = TitanFactory.open(config);
TitanManagement mgmt = graph.openManagement();
mgmt.makePropertyKey("name").dataType(String.class).make();
mgmt.makeEdgeLabel("friend").make();
mgmt.commit();
TitanTransaction tx = graph.newTransaction();
Vertex ashaful = tx.addVertex("name", "Ashraful Islam");
Vertex jishnu = tx.addVertex("name", "Jishnu Banerjee");
Vertex ovi = tx.addVertex("name", "Ahsanul Haque Ovi");
ashaful.addEdge("friend", jishnu);
jishnu.addEdge("friend", ovi);
tx.commit();
GraphTraversalSource g = graph.traversal();
GraphTraversal result = g.V().has("name", "Ashraful Islam").out("friend").out("friend").values("name");
while (result.hasNext()) {
System.out.println(result.next());
}
graph.close();
TitanDB或JanusGraph節點不互相溝通,你必須爲您的所有節點使用通用存儲後端羣集(Cassandra/HBase),以使其數據一致。
當在嵌入式模式下運行時,是否有一種Titan作爲集羣連接的方式,例如,我有3個運行Titan的Servlet可以將數據分配到3個節點中嗎? – xybrek
TitanDB或JanusGraph節點彼此不通信,您必須爲所有節點使用公共存儲後端羣集(Cassandra/HBase),以使其數據一致。 –
查看文檔,它可以使用Hazelcast進行聚類:http://titan.thinkaurelius.com/wikidoc/0.4.1/Using-Hazelcast.html – xybrek