2014-11-08 27 views
0

我想使用Java遠程管理圖形(創建,刪除和更新頂點和邊)。 我已經實現了所有的DAO層,使用藍圖和TitanGraph對象來訪問和操作圖形信息。使用Java和Rexster創建/檢索/更新/刪除

我認爲安裝Rexster並用遠程連接代替TitanGraph工廠就足夠了。但是在安裝Rexster後,似乎無法創建一個連接到Rexster的TitanGraph對象。

在文檔說說兩個選項與Rexster工作:

  • 使用RexsterClient:但它是唯一可以使用精怪,所以 無法創建/刪除/更新信息。正如所說的@ stephen-mallette,可以創建/刪除/更新正在執行的Groovy腳本。
  • 使用Rexster HTTP Rest API:有可能,但我需要重寫所有的 我的DAO層。

我的問題是:如何使用Java和遠程Rexster服務器創建/更新/刪除頂點/邊緣?哪裏有例子?

謝謝。

回答

0

我不知道你這是什麼意思:

使用RexsterClient:但這僅僅是可以使用精怪,所以無法創建/刪除/更新信息。

RexsterClient將Gremlin腳本發給Rexster。雖然我們通常認爲Gremlin是用於查詢圖形的遍歷語言,但它完全能夠對圖形進行變異。以下是完全有效的Gremlin:

v = g.addVertex() 
v.setProperty("name","bill") 

所以,在這個意義上,你肯定能發出從RexsterClient修改圖形遠程小鬼。但是,就你而言,你已經有了DAO代碼。爲什麼不重新使用該代碼並將其託管在Rexster中?

  1. 複製包含您的DAO代碼的罐子Rexster /ext目錄
  2. 修改rexster.xml,包括從你的罐子你的包進口要提供給您的類:<imports>com.myco.dao.*</imports>
  3. 開始Rexster

此時,當您使用RexsterClient時,您應該能夠訪問您發送的Gremlin腳本中的那些DAO類。

+0

Hi @ stephen-mallette我在Rexster的主機DAO中想過,但我不想在每個新版本部署後都部署到所有Rexster服務器並重新啓動所有服務器。在使用Gremlin時,我不喜歡硬核大Groovy腳本設置很多屬性的想法。 我認爲Blueprints/Rexster需要一個事務性的API來遠程工作,如JDBC。 – angelcervera 2014-11-09 11:02:01

+0

是的 - 重啓很令人痛苦,儘管您可以通過負載平衡器和滾動重啓或全自動更換Rexster實例來緩解這種痛苦。如果您處於虛擬環境中,這是一個相對簡單的解決方法。我不會設想發送「大時髦的腳本」。如果你的DAO具有合適的抽象級別,那麼腳本不會是:'UserDAO.createUser([name:「stephen」,favoriteColor:「green」])'? – 2014-11-09 12:07:27

+0

最後,沒有「遠程Blueprints API--我們試過這樣做了幾次,結果並不好,不知道在TinkerPop3中加入Gremlin Server(Rexster的替代品)是多麼容易。 Gremlin Server在很大程度上遵循了Rexster的模式,在某些方面可能會更困難,因爲TinkerPop3在某種程度上將Blueprints/Gremlin結構合併在一起,也許唯一的辦法就是更容易,這在Gremlin Server擴展模型中是更多的比起雷克斯特公司的靈活性更高 – 2014-11-09 12:10:28

相關問題