日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

图数据库(Nebula)使用时遇到的坑

發(fā)布時(shí)間:2024/4/24 综合教程 60 生活家
生活随笔 收集整理的這篇文章主要介紹了 图数据库(Nebula)使用时遇到的坑 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、單元測(cè)試

通過(guò)Nebula提供的Java Client完成代碼開發(fā)后,使用JUnit對(duì)其進(jìn)行單元測(cè)試,需要注意幾點(diǎn):

1.1 坑

1.Nebula創(chuàng)建圖空間是異步實(shí)現(xiàn)的,Nebula將在下一個(gè)心跳周期內(nèi)(默認(rèn)是10s)完成圖空間的創(chuàng)建

如果單元測(cè)試代碼中有動(dòng)態(tài)創(chuàng)建、刪除圖空間的語(yǔ)句,單元測(cè)試結(jié)果可能是不確定的,時(shí)好時(shí)壞

2.如果單元測(cè)試中有動(dòng)態(tài)創(chuàng)建Tag、EdgeType,單元測(cè)試結(jié)果可能是不確定的,時(shí)好時(shí)壞

1.2 解決方案

1.基于前面的兩種不確定性,建議提前手動(dòng)創(chuàng)建好:

圖空間(相當(dāng)于關(guān)系數(shù)據(jù)庫(kù))、Tag(相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的表)、EdgeType(相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的表)

只對(duì)Vertex以及Edge進(jìn)行動(dòng)態(tài)插入刪除操作,這樣單元測(cè)試的結(jié)果是穩(wěn)定的,不會(huì)出現(xiàn)時(shí)好時(shí)壞的現(xiàn)象

2.如果使用JUnit5進(jìn)行單元測(cè)試,建議:

在@BeforeAll注解的方法里進(jìn)行Vertex及Edge的初始化

在@AfterAll注解的方法里進(jìn)行Vertex及Edge的清除、Nebula會(huì)話的釋放、連接池的關(guān)閉等操作

二、Java Client線程不安全

2.1 坑

Nebula提供的Java Client是線程不安全的,當(dāng)多個(gè)線程同時(shí)跑時(shí),會(huì)出現(xiàn)IO異常:

com.vesoft.nebula.client.graph.exception.IOErrorException: java.net.SocketException: Broken pipe (Write failed)

所以使用Java Client的,只能用一個(gè)線程跑,沒有充分利用多線程優(yōu)勢(shì),這真是Nebula Java Client最大的坑!

2.2解決方案

1.將Java Client封裝為單例

2.如果Nebula與Flink等流計(jì)算框架相結(jié)合,則需要設(shè)置并行度為1

總結(jié)

以上是生活随笔為你收集整理的图数据库(Nebula)使用时遇到的坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。