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

溫馨提示×

溫馨提示×

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

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

Kafka的功能有哪些

發布時間:2021-07-10 14:10:26 來源:億速云 閱讀:577 作者:chen 欄目:編程語言

本篇內容主要講解“Kafka的功能有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Kafka的功能有哪些”吧!

一、kafka的特性

1.高吞吐量、低延遲:kafka每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒,每個topic可以分多個partition, consumer group 對partition進行consume操作。

2.可擴展性:kafka集群支持熱擴展

3. 持久性、可靠性:消息被持久化到本地磁盤,并且支持數據備份防止數據丟失

4. 容錯性:允許集群中節點失敗(若副本數量為n,則允許n-1個節點失敗)

5.高并發:支持數千個客戶端同時讀寫

二、kafka的場景

 1.消息隊列:對于一些常規的消息系統,kafka是個不錯的選擇;partitons/replication和容錯,可以使kafka具有良好的擴展性和性能優勢。

2.kafka可以作為"網站活性跟蹤"的最佳工具,可以將網頁/用戶操作等信息發送到kafka中,并實時監控,或者離線統計分析等行為。

3.日志收集: application可以將操作日志"批量""異步"的發送到kafka集群中,而不是保存在本地或者DB中。kafka可以批量提交消息/壓縮消息等,這對producer端而言,幾乎感覺不到性能的開支,此時consumer端可以使hadoop等其他系統化的存儲和分析系統。

三、kafka介紹

kafka的拓撲關系圖如下所示:

Kafka的功能有哪些

kafka由producer、broker、comsumer和zookeeper幾部分構成,kafka對消息保存時根據Topic進行歸類,發送消息者成為Producer,消息接受者成為Cosumer,此外kafka集群有多個kafka實例組成,每個實例(server)稱為broker。
無論是kafka集群,還是producer和consumer都依賴于zookeeper來保證系統可用性集群保存一些meta信息。

1.Topic/logs

  一個Topic可以認為是一類消息,每個topic將被分成多個partition(區),每個partition在存儲層面是append log文件。任何發布到此partition的消息都會被直接追加到log文件的尾部,每條消息在文件中的位置稱為offset(偏移量),offset為一個long型數字,它是唯一標記一條消息,它唯一的標記一條消息。

Kafka的功能有哪些

每一條消息被發送到broker中,會根據partition規則選擇被存儲到哪一個partition。如果partition規則設置的合理,所有消息可以均勻分布到不同的partition里,這樣就實現了水平擴展。(如果一個topic對應一個文件,那這個文件所在的機器I/O將會成為這個topic的性能瓶頸,而partition解決了這個問題)。

備注:可以通過配置文件中的參數來配置partition的數量 num.partitions=3 

2.Producers

    Producer將消息發布到指定的Topic中,同時Producer也能決定將此消息歸屬于哪個partition,比如基于"round-robin"方式。

3.Consumers

   每個consumer屬于一個consumer group,反過來說,每個group中可以有多個consumer。發送到Topic的消息,只會被訂閱此Topic的每個group中的一個consumer消費。

    如果所有的consumer都具有相同的group,這種情況和queue模式很像,消息將會在consumers之間負載均衡

    如果所有的consumer都具有不同的group,那這就是"發布-訂閱",消息將會廣播給所有的消費者。

    在kafka中,一個partition中的消息只會被group中的一個consumer消費。

每個group中consumer消息消費互相獨立;我們可以認為一個group是一個"訂閱"者,一個Topic中的每個partions,只會被一個"訂閱者"中的一個consumer消費,不過一個consumer可以消費多個partitions中的消息。kafka只能保證一個partition中的消息被某個consumer消費時,消息是順序的。而不同的partition之間的消息的順序性是保證不了的。

4.zookeeper

      zookeeper保存consumer和producer狀態信息,kafka集群幾乎不需要維護任何consumer和producer狀態信息,這樣producer和comsumer的實現就很輕量級,他們可以輕易的離開集群而不會對整個集群產生額外的影響。

zookeeper協調控制的事情:1. 管理broker與consumer的動態加入與離開。(Producer不需要管理,隨便一臺計算機都可以作為Producer向Kakfa Broker發消息)2. 觸發負載均衡,當broker或consumer加入或離開時會觸發負載均衡算法,使得一   個consumer group內的多個consumer的消費負載平衡。(因為一個comsumer消費一個或多個partition,一個partition只能被一個consumer消費)3.  維護消費關系及每個partition的消費信息。實現方式:1. 每個broker啟動后會在zookeeper上注冊一個臨時的broker registry,包含broker的ip地址和端口號,所存儲的topics和partitions信息。2. 每個consumer啟動后會在zookeeper上注冊一個臨時的consumer registry:包含consumer所屬的consumer group以及訂閱的topics。3. 每個consumer group關聯一個臨時的owner registry和一個持久的offset registry。對于被訂閱的每個partition包含一個owner registry,內容為訂閱這個partition的consumer id;同時包含一個offset registry,內容為上一次訂閱的offset。

到此,相信大家對“Kafka的功能有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

长宁区| 苏尼特右旗| 阳信县| 桃江县| 肃北| 太仆寺旗| 米泉市| 乐陵市| 东港市| 金乡县| 潞城市| 咸宁市| 江孜县| 白城市| 龙游县| 屯昌县| 潞城市| 高清| 韩城市| 马边| 疏附县| 曲沃县| 垫江县| 广南县| 昌宁县| 黄冈市| 利津县| 天气| 酒泉市| 永城市| 县级市| 台前县| 慈利县| 新建县| 舒城县| 武安市| 香河县| 南溪县| 江门市| 通化市| 朝阳区|