本文介紹了如何在海王星中使用Gremlin會(huì)話?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在嘗試對(duì)Amazon海王星使用Gremlin sessions。我可以在會(huì)話之外很好地執(zhí)行字節(jié)碼查詢,并且可以在會(huì)話客戶端上運(yùn)行字符串查詢,但嘗試使用會(huì)話客戶端運(yùn)行字節(jié)碼查詢會(huì)導(dǎo)致以下錯(cuò)誤:
"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。如何使其正常工作?
推薦答案
基于字節(jié)碼的請(qǐng)求在海王星中根本不受支持(甚至作為參考實(shí)現(xiàn)的Gremlin服務(wù)器本身也不受支持)。造成這種差異的主要原因是,TinkerPop不想在已經(jīng)使用的會(huì)話基礎(chǔ)上進(jìn)一步推廣會(huì)話的使用。TinkerPop在很大程度上為工具支持的狹義用例構(gòu)建了會(huì)話–例如Gremlin控制臺(tái)遠(yuǎn)程連接、可視化工具包和圖形分析工具。然而,考慮到Gremlin對(duì)遠(yuǎn)程多請(qǐng)求事務(wù)用例的弱支持,用戶已經(jīng)擴(kuò)展了會(huì)話使用,以此作為解決該弱點(diǎn)的一種方法。
我感覺這種擴(kuò)展可能會(huì)迫使TinkerPop在會(huì)話中提供字節(jié)碼支持,但到目前為止還沒有決定。另一種選擇是改善對(duì)事務(wù)的支持,但考慮到這種變化的性質(zhì),這在TinkerPop 3.x的范圍內(nèi)可能是不可能的。
目前,如果您希望使用會(huì)話,則只能提交腳本。
這篇關(guān)于如何在海王星中使用Gremlin會(huì)話?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,