簡體   English   中英

將 Hazelcast 地圖與 LMAX 干擾器一起使用 - 性能影響

[英]Using Hazelcast map with LMAX disruptor - performance impact

我們需要運行訂單管理器應用程序的 Active-Active 實例以實現彈性。 在我們的團隊中,Hazelcast 是用於跨彈性實例共享狀態的首選分布式緩存。

在應用程序中,我使用單編寫器模式和 LMAX 干擾器庫。 所以基本上我有一個繁忙的旋轉主線程,它從干擾器(環形緩沖區)讀取傳入的訂單事件並快速處理它而不涉及任何阻塞操作。

現在唯一的問題是,一旦我的主線程接收到事件,它首先在 Hazelcast 分布式地圖中執行查找(以獲取當前訂單的狀態),而 Hazelcast 查找操作相對較慢(~5-10 毫秒) . 我想明白:

1)如果這仍然是可以接受的,即在使用 LMAX 干擾器時從分布式地圖中讀取

2) 另外,由於 Hazelcast 調用是涉及分布式鎖的線程安全,並且 LMAX 人員建議避免在主業務線程中使用與線程相關的鎖,以便 CPU 優化的代碼緩存保持熱狀態,因此從 LMAX Disruptor 的主處理線程調用 hazelcast 是一種反模式?

有人可以為此增加 2 美分嗎?

當然,我會說這是不可接受的。 IMap 不僅會無限期地阻塞,還會進行網絡調用。

我認為一種方法是

  • 要么將 IMap 訪問拆分為另一個線程,並在單獨的環形緩沖區中使用異步事件與其通信
  • 或訂閱 IMap 條目偵聽器並將數據存儲在內存中(如果合適)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM