本文介紹了如何在海王星中使用Gremlin會話?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試對Amazon海王星使用Gremlin sessions。我可以在會話之外很好地執行字節碼查詢,并且可以在會話客戶端上運行字符串查詢,但嘗試使用會話客戶端運行字節碼查詢會導致以下錯誤:
"code":"MalformedQueryException",
"detailedMessage":"Message with op code [bytecode] is not recognized."
我已完全按照AWS文檔操作。
Cluster cluster = Cluster.build().with {
addContactPoint('host')
port(8182)
enableSsl(true)
serializer(Serializers.GRAPHBINARY_V1D0)
create()
}
def client = cluster.connect('session ID')
println client.submit('g.V()').all().get() // works
println traversal().withRemote(DriverRemoteConnection.using(client))
.V().iterate() // returns the error above
println traversal().withRemote(DriverRemoteConnection.using(cluster))
.V().iterate() // works, without a session
我使用的是Gremlin 3.4.8。如何使其正常工作?
推薦答案
基于字節碼的請求在海王星中根本不受支持(甚至作為參考實現的Gremlin服務器本身也不受支持)。造成這種差異的主要原因是,TinkerPop不想在已經使用的會話基礎上進一步推廣會話的使用。TinkerPop在很大程度上為工具支持的狹義用例構建了會話–例如Gremlin控制臺遠程連接、可視化工具包和圖形分析工具。然而,考慮到Gremlin對遠程多請求事務用例的弱支持,用戶已經擴展了會話使用,以此作為解決該弱點的一種方法。
我感覺這種擴展可能會迫使TinkerPop在會話中提供字節碼支持,但到目前為止還沒有決定。另一種選擇是改善對事務的支持,但考慮到這種變化的性質,這在TinkerPop 3.x的范圍內可能是不可能的。
目前,如果您希望使用會話,則只能提交腳本。
這篇關于如何在海王星中使用Gremlin會話?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,