所以我們有一個問題,滲透檢查器運行12小時之類的東西導致Jgroups斷開連接,然後它不能恢復。如何在Inifinispan下爲Jgroup編寫健康檢查?
顯然我們需要fix Jgroups so that it does recover,但是如果Jgroups關閉,我也不希望負載平衡器將它視爲服務器已啓動。我已經想出瞭如何與負載平衡器進行通信,但我在解決如何實際檢查通道通信的健康狀況方面存在問題,特別是因爲它是Infininispan,它負責創建它們(它本身是由休眠/搜索)。
我想如果我可以拿到Channel的我可以使用這些,儘管可能會有更好的方法,而且我也看不到獲得渠道的方法。好吧,我找到this,它顯示瞭如何從DefaultCacheManager
獲得頻道,但這只是問題,我如何獲得緩存管理器。我們使用的是Spring,並且它看起來並沒有在jndi中定義,所以沒有了,初始化這個東西的參數只是一個傳遞給hibernate的xml配置。注意:沒有隻有Tomcat和Spring 4的應用服務器。
jgroups 3.6.13
infinispan 8.1.0,
hibernate search 5.3
如何檢查Jgroups中的通道是否已連接?
是的,可是,該鏈接假設我有機會獲得的CacheManager ...這是由其他東西創建的...我假設,也許不正確,我必須有CacheManager的實例,這已創建,我無法弄清楚如何做到這一點。 但是是羣集崩潰,有時我們會分裂大腦,有時會發生其他錯誤,但節點永遠不會重新加入羣集,並且我試圖檢測到 – xenoterracide
我的問題可能不正確,只是試圖分辨羣集是健康的,如果不是,則向負載均衡器報告適當的狀態。 – xenoterracide
不,你不需要一個CacheManager,一個簡單的緩存會做(轉換省略):cache.getAdvancedCache()。getRpcManager()。getTransport()將爲你提供傳輸。接下來,向下轉換爲JGroupsTransport,然後調用getChannel() –