中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么要使用這么強大的分布式消息中間件kafka

發布時間:2021-12-15 09:43:15 來源:億速云 閱讀:186 作者:柒染 欄目:大數據

本篇文章為大家展示了為什么要使用這么強大的分布式消息中間件kafka,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

為什么是kafka?

在我們大量使用分布式數據庫、分布式計算集群的時候,是否會遇到這樣的一些問題:

  1. 我們想分析下用戶行為(pageviews),以便我們設計出更好的廣告位

  2. 我想對用戶的搜索關鍵詞進行統計,分析出當前的流行趨勢

  3. 有些數據,存儲數據庫浪費,直接存儲硬盤效率又低

這些場景都有一個共同點:
數據是由上游模塊產生,上游模塊,使用上游模塊的數據計算、統計、分析,這個時候就可以使用消息系統,尤其是分布式消息系統!

知道了我們有必要在數據處理系統中使用一個消息系統,但是我們為什么一定要選kafka呢?現在的消息系統可不只有kafka。

Kafka簡介

Kafka是Linkedin于2010年12月份創建的開源消息系統,它主要用于處理活躍的流式數據。活躍的流式數據在web網站應用中非常常見,這些活動數據包括頁面訪問量(Page View)、被查看內容方面的信息以及搜索情況等內容。 這些數據通常以日志的形式記錄下來,然后每隔一段時間進行一次統計分析。

傳統的日志分析系統是一種離線處理日志信息的方式,但若要進行實時處理,通常會有較大延遲。而現有的消息隊列系統能夠很好的處理實時或者近似實時的應用,但未處理的數據通常不會寫到磁盤上,這對于Hadoop之類,間隔時間較長的離線應用而言,在數據安全上會出現問題。Kafka正是為了解決以上問題而設計的,它能夠很好地進行離線和在線應用。

kafka部署結構

消息隊列(Message Queue,簡稱MQ),從字面意思上看,本質是個隊列,FIFO先入先出,只不過隊列中存放的內容是message而已。其主要用途:不同進程Process/線程Thread之間通信。

幾大特性

  • 高吞吐量:可以滿足每秒百萬級別消息的生產和消費——生產消費。

  • 負載均衡:通過zookeeper對Producer,Broker,Consumer的動態加入與離開進行管理。

  • 拉取系統:由于kafka broker會持久化數據,broker沒有內存壓力,因此,consumer非常適合采取pull的方式消費數據

  • 動態擴展:當需要增加broker結點時,新增的broker會向zookeeper注冊,而producer及consumer會通過zookeeper感知這些變化,并及時作出調整。

  • 消息刪除策略:數據文件將會根據broker中的配置要求,保留一定的時間之后刪除。kafka通過這種簡單的手段,來釋放磁盤空間。

消息收發流程

  • 啟動Zookeeper及Broker.

  • Producer連接Broker后,將消息發布到Broker中指定Topic上(可以指定Patition)。

  • Broker集群接收到Producer發過來的消息后,將其持久化到硬盤,并將消息該保留指定時長(可配置),而不關注消息是否被消費。

  • Consumer連接到Broker后,啟動消息泵對Broker進行偵聽,當有消息到來時,會觸發消息泵循環獲取消息,獲取消息后Zookeeper將記錄該Consumer的消息Offset。

Kafka服務

對于kafka而言,kafka服務就像是一個大的水池。不斷的生產、存儲、消費著各種類別的消息。那么kafka由何組成呢?

  • Broker : Kafka消息服務器,消息中心。一個Broker可以容納多個Topic。

  • Producer :消息生產者,就是向Kafka broker發消息的客戶端。

  • Consumer :消息消費者,向Kafka broker取消息的客戶端。

  • Zookeeper :管理Producer,Broker,Consumer的動態加入與離開。

  • Topic :可以為各種消息劃分為多個不同的主題,Topic就是主題名稱。Producer可以針對某個主題進行生產,Consumer可以針對某個主題進行訂閱。

  • Consumer Group: Kafka采用廣播的方式進行消息分發,而Consumer集群在消費某Topic時, Zookeeper會為該集群建立Offset消費偏移量,最新Consumer加入并消費該主題時,可以從最新的Offset點開始消費。

  • Partition:Kafka采用對數據文件切片(Partition)的方式可以將一個Topic可以分布存儲到多個Broker上,一個Topic可以分為多個Partition。在多個Consumer并發訪問一個partition會有同步鎖控制。

有的時候,不光是燈紅酒綠的世界可以讓人沉迷,技術的世界也同樣如此。而且有的時候,技術的世界比前者更加可怕,它不但能讓你悄無聲息的陷入進去,還能讓你產生一種你很上進,你很努力的假象,以至于等到你恍然大悟那天,已經悔之晚矣。

未來Kafka中間件

目前該中間件只完成了初級階段功能,很多功能都不完善不深入,隨著應用業務的拓展及Kafka未來版本功能支持。以Kafka消息中間件為中心的大數據處理平臺還有很多任務去實現。

一般在互聯網中所流動的數據由以下幾種類型:

  • 需要實時響應的交易數據,用戶提交一個表單,輸入一段內容,這種數據最后是存放在關系數據庫(Oracle, MySQL)中的,有些需要事務支持。

  • 活動流數據,準實時的,例如頁面訪問量、用戶行為、搜索情況等。我們可以針對這些數據廣播、排序、個性化推薦、運營監控等。這種數據一般是前端服務器先寫文件,然后通過批量的方式把文件倒到Hadoop(離線數據分析平臺)這種大數據分析器里面,進行慢慢的分析。

  • 各個層面程序產生的日志,例如http的日志、tomcat的日志、其他各種程序產生的日志。這種數據一個是用來監控報警,還有就是用來做分析。

上述內容就是為什么要使用這么強大的分布式消息中間件kafka,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日喀则市| 洪泽县| 木里| 桐城市| 德庆县| 大名县| 辽宁省| 青海省| 湖州市| 泸西县| 凤阳县| 洛隆县| 北安市| 新乡县| 胶南市| 修文县| 张掖市| 清水河县| 玉林市| 都匀市| 华阴市| 策勒县| 华池县| 桐城市| 同仁县| 义马市| 诸城市| 手机| 黄冈市| 南投县| 扬州市| 巴南区| 泗洪县| 广元市| 皋兰县| 驻马店市| 泸西县| 徐汇区| 潢川县| 海口市| 德昌县|