Kafka評傳——從kafka的消息生命週期引出的沉思| 女神節有獎徵文

kafka脫胎於雅虎項目,在現今的消息系統中,存在着舉足輕重的意義。在筆者看來學習Kafka這款系統既有利於思考分佈式消息隊列的推演,也有利於發掘rabbitmq中的不足,以史爲鑑能夠知興替,學習老大哥rabbitmq中的精華,摒棄其中的糟粕,提高下一代消息隊列服務的性能,榮幸之至。後端

不妨看看消息隊列的官方介紹架構

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.併發

翻譯過來就是,在計算機科學領域,消息隊列和郵箱都是軟件工程組件,一般用於進程間或同一進程內的線程通訊。它們經過隊列來傳遞消息-傳遞控制信息或內容,羣組通訊系統提供相似的功能異步

對於消息隊列的見解

消息隊列就是一個使用隊列來通訊的組件,消息隊列經常指代的是消息服務中間件,然而它的存在不單單只是爲了解決通訊這個問題。筆者看來其存在至少有三個目的:分佈式

  • 異步處理
  • 服務解耦
  • 流量控制

消息隊列的存在就是爲了實現這三個目的,也是圍繞這三個目的而進行架構設計實踐和功能升級迭代ide

異步處理

減小請求的等待,還能讓服務異步併發處理,提高系統整體性能。流程如圖所示性能

Kafka評傳——從kafka的消息生命週期引出的沉思| 女神節有獎徵文

服務解耦

訂單服務把訂單相關消息塞到消息隊列中,下游系統誰要誰就訂閱這個主題。這樣訂單服務就解放啦學習

Kafka評傳——從kafka的消息生命週期引出的沉思| 女神節有獎徵文

流量控制

後端服務相對而言都是比較的,由於業務較重,處理時間較長線程

Kafka評傳——從kafka的消息生命週期引出的沉思| 女神節有獎徵文

利用消息隊列,能夠存在一個緩衝的做用架構設計

  • 生產者生產過快,網關的請求先放入消息隊列中,後端服務盡本身最大能力去消息隊列中消費請求。超時的請求能夠直接返回錯誤信息
  • 消費者消費過慢,固然還有一些服務特別是某些後臺任務,不須要及時地響應,而且業務處理複雜且流程長,那麼過來的請求先放入消息隊列中,後端服務按照本身的節奏處理

kafka消息的生命

一條消息是有生命的,存在出生,亦存在死亡,生死之間的傳導也存在着諸多的昇華,會歷經沉浮,各類紛紛擾擾,有副本,有恢復,有重建,仍是很值得探索一番,嘗試爲其寫一篇評傳,記念其短暫又有意義的一輩子。

相關文章
相關標籤/搜索