天天看點

消息代理對比DB

  • DB通常保留資料直至顯式删除,而大多消息代理在消息成功遞送給消費者時會自動删除消息。這樣的消息代理不适合長期資料存儲
  • 由于它們很快就删除消息,大多數消息代理都認為它們的工作集很小,即隊列很短。如代理需緩沖很多消息,比如因為消費者速度慢(如果記憶體裝不下消息,可能會溢出到磁盤),每個消息需要更長處理時間,整體吞吐量可能惡化
  • DB通常支援次級索引和各種搜尋資料方式,而消息代理通常支援按照某種模式比對主題,訂閱其子集。雖機制不一,但對于用戶端選擇想要了解的資料的一部分,都是基本方式
  • 查詢DB時,結果通常基于某時間點資料快照;若另一個用戶端随後向資料庫寫入一些改變了查詢結果的内容,則第一個用戶端不會發現其先前結果現已過期(除非它重複查詢或輪詢變更)。而消息代理不支援任意查詢,但當資料發生變化時(即新消息可用時),它們會通知用戶端