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
減小請求的等待,還能讓服務異步併發處理,提高系統整體性能。流程如圖所示性能
訂單服務把訂單相關消息塞到消息隊列中,下游系統誰要誰就訂閱這個主題。這樣訂單服務就解放啦學習
後端服務相對而言都是比較弱的,由於業務較重,處理時間較長線程
利用消息隊列,能夠存在一個緩衝的做用架構設計
一條消息是有生命的,存在出生,亦存在死亡,生死之間的傳導也存在着諸多的昇華,會歷經沉浮,各類紛紛擾擾,有副本,有恢復,有重建,仍是很值得探索一番,嘗試爲其寫一篇評傳,記念其短暫又有意義的一輩子。