重複造輪子 kmq

2021-10-16 03:22:51 字數 1024 閱讀 5338

第一章 kafka基礎概念

第二章 kafka集群部署實踐

第三章 重複造輪子-kmq

基於記憶體queue實現生產和消費api

1) 建立記憶體blockingqueue, 作為底層訊息儲存

2) 定義topic, 支援多個topic

3) 定義producer, 支援send訊息

4) 定義consumer, 支援poll訊息

2、 去掉記憶體queue, 設計自定義queue, 實現訊息確認和消費offset

1) 自定義記憶體message陣列模擬queue。

2) 使用指標記錄當前訊息寫入位置。

3) 對於每個命名消費者, 用指標記錄消費位置。

拆分broker和client(包括producer和consumer)

1) 將queue儲存到web server端

2) 設計訊息讀寫api介面, 確認介面, 提交offset介面

3) producer和consumer通過httpclient訪問queue

4) 實現訊息確認, offset提交

5) 實現consumer從offset增量拉取

增加多種策略(各條之間沒有關係, 可以任意選擇實現)

1) 考慮實現訊息過期, 訊息重試, 訊息定時投遞等策略

2) 考慮批量操作, 包括讀寫, 可以打包和壓縮

3) 考慮訊息清理策略, 包括定時清理, 按容量清理、 lru等

4) 考慮訊息持久化, 存入資料庫, 或wal日誌檔案, 或bookkeeper

5) 考慮將spring mvc替換成netty下的tcp傳輸協議, rsocket/websocket

對接各種技術(各條之間沒有關係, 可以任意選擇實現)

1) 考慮封裝 jms 1.1 介面規範

2) 考慮實現 stomp 訊息規範

3) 考慮實現訊息事務機制與事務管理器

4) 對接spring

5) 對接camel或spring integration

6) 優化記憶體和磁碟的使用

js封裝xhr 重複造輪子

仿jquery ajax,不過功能沒那麼多。貼 分割線 myxhr物件 var myxhr function config success function error function 合併配置項 var mergeconfig this.config this.extend this confi...

如何避免重複造輪子問題

人家已經總結出的系統的經驗知識,可是因為不知道它的存在或沒有找到,摸索幾年後,才發現自己走了遠路。如企業管理中的 六脈神劍 阿里巴巴的績效考核體系至少有80 在所有企業中是共通的。可見 a.自己要做什麼輪子?b.是否有現成的 或近似的輪子。記住這兩個問題。第二個例子是軟體開發,現成的輪子有 a.開源...

到底要不要重複造輪子

在軟體開發領域有一句著名的話 不要重複造輪子 那這句有道理嗎?我個人覺得 這句話有道理,也沒道理,這句話是有矛盾和衝突的!任何事情都有兩面性 我們必須要知道一件事情,在企業中工作的程式設計師,他們除了寫 之外,還有一件最重要的事情,就是幫老闆賺錢,程式設計師怎麼幫老闆賺錢呢?那就是程式設計師靠寫 幫...