disruptor-pattern

    3熱度

    1回答

    我們已經在生產中使用了LMAX干擾器將近一年。直到上週我們看到來自Disruptor的信息丟失時,一切都很好。我們的干擾器的結構是非常簡單的: 卡夫卡 - > RingBuffer - > Eventhandler1 - > Eventhandler2 - > Eventhandler3 每個事件處理程序都有一個try-catch塊捕獲所有異常。最慢的是Eventhandler2,每條消息需要大約

    2熱度

    1回答

    那些熟悉lmax ring buffer (disruptor)的人知道該數據結構的最大優勢之一在於它批量處理事件,並且當我們有一個消費者可以利用批處理使系統自動可調對負載來說,你投入的事件越多越好。 不知想不出我們實現與可觀察到同樣的效果(針對批處理功能)。我已經嘗試過Observable.buffer,但這是非常不同的,緩衝區將等待並且不發出批處理,而預期的事件數沒有到達。我們想要的是完全不同

    1熱度

    2回答

    繼Disruptor Getting Started Guide之後,我已經與一個生產者和一個消費者建立了一個最小的破壞者。 生產者 import com.lmax.disruptor.RingBuffer; public class LongEventProducer { private final RingBuffer<LongEvent> ringBuffer;

    2熱度

    1回答

    示例代碼... public class LongEvent { private long value; public void set(long value) { this.value = value; } } 編號:https://github.com/LMAX-Exchange/disruptor/wiki/Getting-Sta

    1熱度

    2回答

    我目前正在優化代碼,定期從數據庫重新加載大量數據。每次執行此操作〜操作結束後,會創建並釋放800k個對象以進行垃圾回收。 作爲代碼的一個優化,我想使用一個對象池來重新使用池中的對象,並且對垃圾回收的影響有點小。我考慮過使用干擾庫來達到這個目的,但遺憾的是,我找不到任何最近的例子來處理借用和回饋對象到池中。大多數例子都集中在消息處理上。 現在我的問題是,如果有任何示例項目/代碼僅用於處理池或者如果有

    1熱度

    1回答

    我是一個破壞者的新手,我正在使用干擾程序在線程之間傳遞線程結構。我可以使用hadleEventsWith或使用after()來運行一組處理程序。 disruptor.handleEventsWith(eventhandler1) .then(eventhandler2) .then(eventhandler3); 但是,我希望能夠以新的事件處理器添加到該管道在不

    0熱度

    1回答

    我有以下的在我的春天啓動的應用程序的反應器結構: @Configuration public class AsyncConfig { @Bean public EventBus eventBus(){ return EventBus.create(getDispatcher("rb-relay")); } public MultiThrea

    2熱度

    2回答

    我計劃在我的干擾者中擁有許多平行消費者。 我需要每個消費者只消費對他們有意義的消息。 例如,我有類型A,B,C的消息和我已緩衝像 #1 - type A, #2 - type B, #3 - type C, #4 - type A, #5 - type C, #6 - type C, (and so on) 我有消費者對於每種類型的。我怎樣才能達到這個消費者,因爲A會採取消息1和4,對於B型

    2熱度

    1回答

    我正在使用workerpool示例,並嘗試使用不同的WaitStrategies。當我嘗試TimeoutBlockingWaitStrategy時,出現錯誤。這是程序和調用堆棧。 package org.lmax.experiment.test; import java.util.Random; import java.util.concurrent.ExecutionException;

    0熱度

    1回答

    我們正在設計一個java中的Orchestrator系統,它將託管一個Web服務,並根據請求調用一個用XML編寫的流程,這些流程只是一個接一個執行的步驟, XML告訴用戶流程是什麼,他也可以通過更改XML來改變流程。他可以添加一項新服務並將其添加到XML中。但是在設計時,我現在感到困惑於類似的東西。 我應該做一個服務,一個阻塞隊列,可運行,並通過將其安排到執行,所以當新的請求到達時我會推入阻塞隊列