天天看點

Ignite問題彙總

說到Ignite,算了,不想說了,都是淚。

有些問題當時遇到解決之後沒時間記錄,現在隻能想起個大概。。。但還是記錄一下吧。全是自己在開發中遇到的。

1.首先是最主要,maven中引用的Ignite版本,與伺服器上Ignite版本不一緻産生的問題,這個問題很好解決,隻需要檢視伺服器上版本,并将maven依賴中的版本号修改一下即可。(此處無報錯截圖,大概就是error資訊裡會寫:localVersion:xxx,remoteVersion:xxx)如果版本不一緻,那調試基本就是個夢。

2.(在使用到Ignite SQL時可能會用到)使用Ignite寫入對象類型(平時可能value就是簡單字元串或者數字,對象類型就是value是一個對象。。。。)的資料時,必須確定程式和Ignite服務在一個網絡環境下!!(之前單測裡一頓寫入就是不好使,也不報錯,後來程式打包放到伺服器上才能寫入成功。)

3.Ignite的XML配置檔案中,在解析的時候會去spring-beans裡找對應xsd檔案(當時好像是因為我本地打包中的spring版本過低,還是包沖突了,總之沒有找到xsd),找對應的xsd檔案,本地找不到會去網絡上下載下傳,可實際的環境上是無法連接配接外網的,導緻XML解析失敗連接配接不上Ignite,程式崩掉。于是先保證本地有xsd,然後将配置裡的路徑換成xsd的全路徑即可。

預設的XML配置:

Ignite問題彙總

修改後的XML配置:

Ignite問題彙總

4.吐了,想起這個問題就想吐。Ignite用戶端連接配接不上,但有時候又可以連接配接成功,後來發現是自己VPN開着(因為公司的開發環境本身需要使用VPN,我自己又開了一個别的VPN)。關了就愉快的各種連接配接上了。真的吐了。

5.使用Zookeeper的方式去連接配接Ignite叢集時,一定要保證程式裡的配置類型和伺服器上的一緻。例如下方的配置檔案中這樣配置:

Ignite問題彙總

那麼代碼裡的類型必須跟配置裡的完全保持一緻:

Ignite問題彙總

否則,使用Zookeeper連接配接Ignite就是在做夢。(别問我為啥知道,枯了。)

6.上面好不容易解決了Zookeeper連接配接的問題,以為能開心的送出代碼了,一運作:

Ignite問題彙總

網上大概查了一下,發現Ignite叢集環境上的guava版本較低16.0,而代碼裡引用的guava版本較高26.0,上面錯誤裡的方法在18.0版本以後就變成下面這個了,是以連接配接伺服器時16.0版本中找不到上述方法:

Ignite問題彙總

是以将代碼裡引用的guava版本調成跟伺服器上一緻就可以了(還有些是因為jar包沖突,不同子產品可能引用了不同的guava版本的jar包,這時候隻保留一個版本的就可以了,其他的exclusion掉)。