[英]How to convert ReentrantReadWriteLock logic to LMAX Disruptor with barriers
我有一個 ArrayList 的共享集合,並且我使用 ReentrantReadWriteLock 鎖來保護來自不同線程的關鍵區域的進入。 我的線程是三個作家,閱讀,刪除線程。 我在每種情況下都獲得了正確的鎖定。 邏輯是我將數據插入 ArrayList,在必要時讀取它們,並且當計時器達到限制時刪除一 ...
[英]How to convert ReentrantReadWriteLock logic to LMAX Disruptor with barriers
我有一個 ArrayList 的共享集合,並且我使用 ReentrantReadWriteLock 鎖來保護來自不同線程的關鍵區域的進入。 我的線程是三個作家,閱讀,刪除線程。 我在每種情況下都獲得了正確的鎖定。 邏輯是我將數據插入 ArrayList,在必要時讀取它們,並且當計時器達到限制時刪除一 ...
[英]Using lmax Disruptor (3.0) in java to process millions of documents
我有以下用例: 當我的服務啟動時,它可能需要在盡可能短的時間內處理數百萬份文檔。 將有三個數據源。 我已經設置了以下內容: 我的每個來源都調用了消耗,我使用 Guice 創建了一個單例干擾器。 我的 eventHandler 例程是 我在我的日志中看到生產者( consume )有時會 ...
[英]Nearly no performance gain between single and multiple consumers using LMAX Disruptor / how to decode many UDP packets properly
我必須使用 UDP 傳輸更大的文件(最大 10GB)。 不幸的是,TCP 不能用於此用例,因為發送方和接收方之間不可能進行雙向通信。 發送文件不是問題。 我已經使用netty編寫了客戶端。 它讀取文件,對其進行編碼(唯一 ID,position 中的 stream 等)並以可配置的速率(每秒數據包數 ...
[英]LMAX Disruptor remainingCapacity equals 0, even before some time waiting
我通過調用tryPublishEvent function 將數據添加到 Disruptor。 在我等待 40 秒並嘗試通過以下計算檢查unprocessedDataCount后: 有時remainingCapacity容量值等於 0,即使在獲取ringBufferUnProcessedCount值 ...
[英]How is LMAX Disruptor garbage collector friendly
我試圖了解 lmax 破壞者是如何對 GC 友好的。 我看到環上的事件對象被重用,但是,在這些對象上“設置”的“數據”在堆上,所以感覺垃圾收集的好處僅限於每個事件少 1 個對象。 如果“數據”是原始數據類型,則堆上沒有任何額外內容,因此在這種情況下的好處非常明顯。 每個事件中 GC 的 1 個對象是 ...
[英]Disruptor behavior - Drain full buffer before consuming new data
我有以下情況。 我們在 K8s 上的 Cloud 中對我們的應用程序進行負載測試。 我們的入站消息來自 Kafka,我們正在回信給 Kafka。 我們的架構是這樣的,Kafka 線程將消息推送到中斷器(阻塞等待策略,512 大小),業務線程將消息從中斷器中取出進行處理。 為了模擬負載,我們在應用程序 ...
[英]LMAX Disruptor in Python
是否已經有一個實現(或至少綁定到)Python3? 我可以看到 Github 上的原始實現是用 Java 實現的,但我沒有看到 Python3 的任何內容。 ...
[英]Why lmax disruptor architecture use 2 disruptor?
在“lmax干擾器架構設計”中表明,他們正在獲取輸入並將其排入輸入干擾器中,並且有多個事件處理程序,如日志記錄、解組、業務邏輯,然后將其排入輸出干擾器和輸出干擾器具有編組、日志等事件處理程序.. 我的疑問是..為什么不使用一個干擾器和輸入和輸出干擾器的所有組合事件處理程序。 我們可以以這樣的方式處 ...
[英]LMAX Distruptor Partition and join batch
因此,當前我有一個帶有阻塞隊列的Executor實現,具體實現是這樣的,我有每個請求的項目列表,並將它們划分為分區,然后計算每個分區,最后將它們合並在一起以得到最終列表。 如何在LMAX中實現它? 我看到一旦有了分區並將其推入RingBuffer,每個分區都被視為單獨的項目,因此我可以自 ...
[英]LMAX Disruptor Producer Incorrectly Wraparound + Overwrite Before Consumer Completes Read
最近向我介紹了LMAX Disruptor,並決定嘗試一下。 多虧了開發人員,安裝過程快速而輕松。 但是我認為如果有人可以幫助我,我就會遇到問題。 問題:有人告訴我,生產者發布事件時,它應該阻塞,直到消費者有機會在包裝之前檢索它為止。 我在消費者方面有一個序列障礙,我可以確認,如果生 ...
[英]how to fulfill the ringbuffer with data from my hashmap lmax disruptor
實際上,在閱讀並使用一個簡單的破壞性示例之后,我找不到如何將哈希映射中的數據與eventHandler,Translator或來自哪個組件的數據一起滿足的哈希緩沖區中的數據實現到哪里? ...
[英]LMAX Disruptor - Maintain order of events
我有一個從各種文件加載時間序列數據的應用程序。 該應用程序為每個文件打開一個線程以並行加載數據。 文件中的記錄是有序的,但是我需要將一個提要傳送到應用程序的其余部分,以保持整體事件的順序。 是否可以像多個生產者一樣使用破壞者來實現一種維護事件順序的消費者類型的設計? 我目前正在使 ...
[英]Disruptor vs. Reactive architecture for middle-frequency trading system
我正在嘗試為我正在研究的中頻交易系統選擇合適的架構。 目前,我從Web Socket或Rest接收消息並在那里處理它們。 有時它包含IO操作(即額外的休息請求),因此它的工作速度非常慢,我想,所有其他消息都在Web Socket客戶端的實現中得到緩沖。 這種天真的方法看起來不太可擴展。 ...
[英]Disruptor Journaling Implementation
在Martin Fowler關於LMAX干擾器架構的文章中 ,他說: 記者的工作是將所有事件以持久形式存儲,以便在發生任何錯誤時可以將其重播。 LMAX為此不使用數據庫,而僅使用文件系統。 他們將事件流式傳輸到磁盤上。 我很好奇在實踐中基於文件系統的事件日志的實現情況。 ...
[英]Why is disruptor slower with smaller ring buffer?
遵循Disruptor入門指南 ,我建立了一個由單個生產者和單個消費者組成的最小破壞者。 制片人 消費者 (請注意,消費者在onEvent不執行任何操作) 我的目標是對大型環緩沖區進行一次性能測試,而不是多次遍歷較小的環。 在每種情況下,總操作數( bufferSize ...
[英]LMAX Disruptor Dependency Graph/Gating with SequenceBarrier
目標 我正在嘗試在處理程序之間創建一個有點循環的依賴關系,我無法弄清楚如何正確處理它。 我想要實現的是producer -> [handlers 1-3] -> handler 4 。 所以, disruptor.handleEventsWith(h1, h2, h3) ...
[英]Lmax Disruptor, many consumers - how make consumer take only messages of particular kind and proceed independently?
我計划在我的破壞者中擁有許多並行的消費者。 我需要每個使用者僅使用針對他們的消息。 例如,我有A,B,C類型的消息,並且我有類似的緩沖區 我有每種類型的消費者。 我如何才能使A的使用者接受消息1和4,類型B-消息2,C-消息3、5、6? 重要說明:我希望處理過程獨立。 ...
[英]“Finally” or “Do Last” for LMAX Disruptor?
我正在嘗試為LMAX中斷程序編寫包裝程序,並且想知道是否存在一種機制來添加一個在中斷程序流程結束時執行的事件處理程序。 有沒有辦法做到這一點? ...
[英]Pause the processing inside lmax disruptor?
我想使用 Lmax Disruptor 進行性能測試: 配置dusruptor 以某種方式“暫停”處理 向 RingBuffer 添加許多消息 “取消暫停”處理 這樣我就可以清楚地測量緩沖區變空的速度。 如果我“混合”添加許多消息(這會引入一些延遲)和處理,我可能對處理速度的結果不 ...