高吞吐量的Java事件匯流排:MBassador
MBassador是一款在多執行緒環境中為高吞吐量而最佳化的功能豐富的java事件匯流排。註解驅動、同步/非同步事件釋出,強/弱引用,動態事件過濾。
MBassador是實現釋出/訂閱模式的輕量,高效能的事件匯流排。它主要為了能易於使用的豐富的和可擴充套件的功能,同時保持資源效率和效能。
MBassador的高效能核心是一種專門的資料結構,可提供無阻塞的讀寫器,並最大限度地減少寫入者的鎖爭用,從而將讀/寫併發訪問效能的損耗降低到最小化。
MBassador的程式碼是生產就緒的:86%的指令覆蓋率,82%的分支覆蓋率,高度隨機和同時執行的測試集,在過去18個月中沒有報告嚴重的錯誤。在不徹底測試程式碼的情況下,不會對核心進行任何修改。
使用很簡單,bus = new MBassador()建立單例,配置訊息處理器使用@[author][author][author]Handler[/author][/author]註解[/author],然後將其註冊到匯流排中bus.subscribe(aListener),這樣就可以開始傳送訊息bus.post(message).now() 或bus.post(message).asynchronously().
MBassador是實現釋出/訂閱模式的輕量,高效能的事件匯流排。它主要為了能易於使用的豐富的和可擴充套件的功能,同時保持資源效率和效能。
MBassador的高效能核心是一種專門的資料結構,可提供無阻塞的讀寫器,並最大限度地減少寫入者的鎖爭用,從而將讀/寫併發訪問效能的損耗降低到最小化。
MBassador的程式碼是生產就緒的:86%的指令覆蓋率,82%的分支覆蓋率,高度隨機和同時執行的測試集,在過去18個月中沒有報告嚴重的錯誤。在不徹底測試程式碼的情況下,不會對核心進行任何修改。
使用很簡單,bus = new MBassador()建立單例,配置訊息處理器使用@[author][author][author]Handler[/author][/author]註解[/author],然後將其註冊到匯流排中bus.subscribe(aListener),這樣就可以開始傳送訊息bus.post(message).now() 或bus.post(message).asynchronously().
// Define your handlers @ Listener(references = References.Strong) class SimpleFileListener{ @ Handler public void handle(File file){ // do something with the file } @ Handler(delivery = Invoke.Asynchronously) public void expensiveOperation(File file){ // do something with the file } @ Handler(condition = "msg.size >= 10000") @ Enveloped(messages = {HashMap.class, LinkedList.class}) public void handleLarge(MessageEnvelope envelope) { // handle objects without common super type } } // somewhere else in your code MBassador bus = new MBassador(); bus.subscribe (new SimpleFileListener()); bus.post(new File("/tmp/smallfile.csv")).now(); bus.post(new File("/tmp/bigfile.csv")).asynchronously(); <p class="indent"> |
GitHub - bennidi/mbassador: A feature-rich Java ev
效能測試:https://blog.gotofinal.com/java/diorite/benchmark/2017/06/11/event-bus.html
[該貼被banq於2017-06-13 22:23修改過]
相關文章
- 事件匯流排事件
- 事件匯流排demo事件
- javascript事件匯流排JavaScript事件
- 將Abp預設事件匯流排改造為分散式事件匯流排事件分散式
- Vue事件匯流排(EventBus)Vue事件
- Vue 事件中央匯流排Vue事件
- Flutter中的事件匯流排(EventBus)Flutter事件
- Otto事件匯流排框架的使用事件框架
- SOFA 原始碼分析— 事件匯流排原始碼事件
- 比 EventBus 更高效的事件匯流排(BusUtils)事件
- 事件匯流排的設計與實現事件
- 事件匯流排EventBus和觀察者模式事件模式
- 自己動手寫事件匯流排(EventBus)事件
- 事件匯流排有個 pipe 管道方法事件
- Otto - 安卓平臺上事件匯流排安卓事件
- 匯流排
- Flutter基礎-036-事件匯流排EventBusFlutter事件
- 風險洞察之事件匯流排的探索與演進事件
- AndroidEventBus (事件匯流排) 的設計與實現AndroidIDEdev事件
- Vue事件匯流排(EventBus)使用詳細介紹Vue事件
- EventBridge 事件匯流排及 EDA 架構解析事件架構
- Android事件匯流排還能怎麼玩?Android事件
- 前端匯流排前端
- 如何在 JavaScript 中實現 Event Bus(事件匯流排)JavaScript事件
- 如何在 pyqt 中實現全域性事件匯流排QT事件
- 在vue專案中自定義事件匯流排eventHubVue事件
- 實現一個事件匯流排(vue.prototype.$bus)?事件Vue
- 元件間通訊--利用mitt實現事件匯流排元件MIT事件
- Solon2 分散式事件匯流排的技術價值?分散式事件
- 序列匯流排的學習
- 手寫Android事件匯流排框架Eventbus(簡易版)Android事件框架
- .Net Core對於`RabbitMQ`封裝分散式事件匯流排MQ封裝分散式事件
- Android 認識EventBus輕量級事件匯流排框架Android事件框架
- 基於事件匯流排EventBus實現郵件推送功能事件
- 在 .NET 中深入瞭解事件匯流排的使用與實現事件
- ARM 匯流排協議協議
- 資料匯流排模式模式
- AHB匯流排協議協議