我有一個hazelcast集羣,它爲命令行觸發的java客戶端執行若干計算。當節點仍在工作時,我需要在客戶端系統上保留部分計算結果。我將把部分數據存儲在Hazelcasts地圖中。現在我正在尋找一種方法來通知客戶端節點已將數據存儲在地圖中,並且他可以開始使用它。有沒有辦法從任何榛節點觸發客戶端操作?從Hazelcast節點聯繫Java客戶端
0
A
回答
0
你的問題不是很清楚,但看起來你可以使用com.hazelcast.core.EntryListener
來觸發一個回調,當數據映射中存儲新條目時,會通知客戶端。
+0
我的問題發佈幾分鐘後,我偶然發現了這個功能。它看起來正是我所需要的。我會在測試環境中嘗試它,並在此處發佈代碼或詢問更多問題。謝謝。 – vitsja
0
您的成員節點可以向Hazelcast IQueue
,ITopic
或RingBuffer
發佈一些中間結果(或只是通知消息)。 流程如下所示。
- 客戶端爲rignbuffer註冊偵聽器。
- 客戶端提交命令在羣集上執行。
- 成員將中間結果保留爲
IMaps
或任何其他數據結構 - 成員向主題發送有關部分結果可用性的消息。
- 客戶端收到消息並訪問
IMap
中的數據。 - 成員會在完成任務後發送消息。
就是這樣的。 你可以找到一些例子here
讓我知道你是否有任何問題。
乾杯,
維克
0
有幾種途徑來解決這個問題。最簡單的就是使用專用的IMap或Hazelcasts的任何其他同步收藏。人們可以簡單地在這樣的地圖中寫入數據,並在添加之後檢索/刪除數據。但是這會造成巨大的開銷,因爲數據必須在整個集羣中同步。如果數據量很大,並且集羣規模龐大,遍佈全球或至少美國的數百個節點,則數據將在所有節點上同步,以便稍後進行刪除,這也必須進行同步。不刪除是不行的,因爲數據可能會有幾個大的數據,這會使數據的同步更加昂貴。問題得到了解答,但解決方案並不適用於所有情況。
相關問題
- 1. Hazelcast C++客戶端
- 2. 從在火花集羣中運行的Hazelcast java客戶端訪問運行在kubernetes集羣節點內的hazelCast
- 3. Hazelcast客戶端線程
- 4. 如何從客戶端節點
- 5. Hazelcast客戶端連接端口
- 6. 無法從Hbase java api客戶端訪問Hbase節點
- 7. 緩存點燃客戶端節點
- 8. 重新連接Hazelcast客戶端
- 9. Hazelcast C++客戶端,地圖和TTL
- 10. Hazelcast客戶端彈簧配置
- 11. 用於node.js的hazelcast客戶端模塊
- 12. 從客戶端到服務器端節點的傳輸值js
- 13. 如何從節點後端查詢火力與客戶端
- 14. Java客戶端從測量
- 15. 無法從Java客戶端
- 16. 的Java:從客戶端類
- 17. 從蒙戈Java客戶端
- 18. Hazelcast專用節點
- 19. Hadoop客戶端節點安裝
- 20. 節點:Windows上的Mysql客戶端庫
- 21. 如何設置Elasticsearch客戶端節點?
- 22. 節點JS客戶端vs服務器
- 23. 節點JS服務器和客戶端
- 24. Hadoop客戶端節點配置
- 25. 節點打字稿客戶端調試
- 26. Php肥皂客戶端多節點
- 27. 節點JS客戶端GRPC服務器
- 28. 節點js中的客戶端代碼
- 29. 區分客戶端連接與節點?
- 30. 客戶端的節點模塊javascript
你可以發佈一些代碼,顯示你試圖實現什麼? – noscreenname
是的,請查閱'MapStore',也許它可以幫助嗎? – vikingsteve