拿走不謝!Kafka官方文檔中文版+Kafka面試題詳解!(可複製)

2021-02-19 程式設計師面試吧

點擊「程式設計師面試吧」,選擇「星標🔝」

回復關鍵詞「面試」有驚喜~

Kafka是一個現在聽到很多的概念.許多領先的網際網路公司似乎也在使用它。但究竟是什麼呢?Kafka最初於2011年在LinkedIn開發,自那時起經歷了很多改進。如今它是一個完整的平臺,允許您冗餘地存儲荒謬的數據量,擁有一個具有巨大吞吐量(數百萬/秒)的消息總線,並對同時通過它的數據使用實時流處理。

今天分享的這份資料,包括121頁的Kafka官方中文文檔Kafka常見面試題,由於內容過多,在此只以截圖展示部分內容,詳細完整版的文檔領取方式請見文末。

這份Kafka官方中文文檔既適合小白入門也適合有一定基礎的同學進階提升。這份文檔共分為9大部分:Kafka基礎入門,APIS,Kafka配置,Kafka設計思想及實現,操作,安全,Kafka 連接器及Kafka streams。幾乎涵蓋了Kafka所有的知識點,一份文檔在手,輕鬆學會Kafka!

第一部分:Kafka基礎入門

這一部分是學習Kafka的準備階段,Kafka的發展,使用案例,下載及歷史版本,都在這一部分進行了詳細的描述。

第二部分:APIS

kafka包括五個核心APIS,在這一部分中分別對其進行了詳解。

1. Producer API允許應用程式將數據流發送到Kafka集群中的主題。
2. Consumer API允許應用程式從Kafka集群中的主題讀取數據流。
3. Streams API允許將輸入主題中的數據流轉換為輸出主題。
4. Connect API允許實現將數據不斷從某些源系統或應用程式中輸入Kafka的連接器,或從Kafka輸入某些接收器系統或應用程式。
5. AdminClient API允許管理和檢查主題,代理和其他Kafka對象。

第三部分:配置




第四部分:設計思想

這一部分介紹了Kafka的設計思想以及一些重要概念解析:生產者,備份,消息分發策略,日誌壓縮······

第五部分:實現思路

第五部分承接第四部分的內容,對Kafka的實現思路進行了詳盡介紹。

第六部分:Kafka操作


接下來就進入了實操階段,基本原理,基礎概念了解清楚之後正式開始上手,這一部分的內容會比較多,是基於LinkedIn使用Kafka作為生產系統的一些使用經驗。基礎配置,硬體作業系統及監控,zookeeper等內容都需要在本章掌握。

第七部分:Kafka安全

Kafka具有特性,通過單獨使用或者⼀起使用這些特性,提高了Kafka集群的安全性。


第八部分:Kafka連接器

這一部分主要介紹了:Kafka Connect ——⼀款可擴展並且可靠地在 Apache Kafka 和其他系統之間進行數據傳輸的工具。 

Kafka Connect 可以攝取資料庫數據或者收集應用程式的 metrics 存儲到 Kafka topics,使得數據可以用於低延遲的流處理。一個導出的 job 可以將來自 Kafkatopic 的數據傳輸到二級存儲,用於系統查詢或者批量進行離線分析。

第九部分:Kafka Streams

Kafka Streams 是一個用於處理和分析存儲在 Kafka 系統中的數據的客戶端庫。它建立在重要的流處理概念上,如恰當地區分事件時間(event time)和處理時間(processing time),支持窗口操作(window),exactly-once 處理語義以及簡單高效的應用程式狀態管理。Kafka Streams 的入門門檻很低。我們可以在單節點環境上快速實現一個小規模的驗證性的程序,只要程序能在多節點的集群環境成功運行即可部署到高負載的生產環境。Kafka Streams 通過利用Kafka 的並行模型實現對相同應用程式的多個實例的負載平衡,這對於用戶來說是透明的。

此外,還為大家準備了一份Kafka面試題(基礎+進階+高級),共44個知識點!




如果有需要完整版的朋友可以識別關注下方公眾號,回復關鍵詞「Kafka」即可全部打包帶走!

注意拼寫正確!直接複製關鍵詞領取更方便哦~

相關焦點

  • Kafka官方文檔翻譯-最新版v2.7(三)
    如果偏移量未能在可配置的超時內複製,偏移量提交將失敗,消費者可以在後退後重新嘗試提交。broker會定期壓縮偏移主題,因為它只需要維護每個分區的最新偏移提交。協調器還將偏移量緩存在內存表中,以便快速服務於偏移量的獲取。 當協調器收到一個偏移獲取請求時,它只需從偏移緩存中返回最後提交的偏移向量。
  • Logstash讀取Kafka數據寫入HDFS詳解
    強大的功能,豐富的插件,讓logstash在數據處理的行列中出類拔萃通常日誌數據除了要入ES提供實時展示和簡單統計外,還需要寫入大數據集群來提供更為深入的邏輯處理,前邊幾篇ELK的文章介紹過利用logstash將kafka的數據寫入到elasticsearch集群,這篇文章將會介紹如何通過logstash將數據寫入HDFS本文所有演示均基於logstash
  • kafka入門(原理-搭建-簡單使用)
    前言公司在用kafka接受和發送數據,自己學習過Rabbitmq,不懂kafka挺不爽的,說幹就幹!網上找了許多帖子,學習了很多,小小的demo自己也搭建起來了,美滋滋,下面我認為優秀的網站和自己的步驟展現給大家。
  • kafka極簡教程
    kafka是用於構建實時數據管道和流應用程式。具有橫向擴展,容錯,wicked fast(變態快)等優點,並已在成千上萬家公司運行。
  • Kafka 基本原理(8000 字小結)
    Kafka是一種快速、可擴展的、設計內在就是分布式的,分區的和可複製的提交日誌服務。它的架構包括以下組件:話題(Topic):是特定類型的消息流。消息是字節的有效負載(Payload),話題是消息的分類名或種子(Feed)名。
  • 利用flume+kafka+storm+mysql構建大數據實時系統
    Kafka版本:0.8.0Kafka下載及文檔:http://kafka.apache.org/Kafka安裝:> tar xzf kafka-<VERSION>./configure# make# make install# vi /etc/ld.so.conf第二步,安裝zookeeper(kafka自帶zookeeper,如果選用kafka的,該步可省略)#wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//zookeeper/zookeeper
  • 不了解Kafka的acks配置,怎麼能說你會Kafka?
    Kafka生產者有很多可以配置的參數,這些在kafka的說明文檔中已經有詳細的說明,它們大部分都有合理的默認值,一般情況下,我們不需要修改。不過有些參數在內存使用、性能和可靠性方面對生產者的影響比較大,今天就重點來講講acks參數對消息可靠性的影響。
  • Apache Kafka 快速入門指南
    「kafka」 之所以受到越來越多的青睞,與它所扮演的三大角色是分不開的的:「消息系統」:kafka與傳統的消息中間件都具備系統解耦、冗餘存儲、流量削峰、緩衝、異步通信、擴展性、可恢復性等功能。在集群內,一個分區由一個 Broker 負責,這個 Broker 也稱為這個分區的 Leader;當然一個分區可以被複製到多個 Broker 上來實現冗餘,這樣當存在 Broker 故障時可以將其分區重新分配到其他 Broker 來負責。下圖是一個樣例:
  • kafka使用原理介紹
    在kafka配置文件中可隨時更高num.partitions參數來配置更改topic的partition數量,在創建Topic時通過參數指定parittion數量。Topic創建之後通過Kafka提供的工具也可以修改partiton數量。一般來說,(1)一個Topic的Partition數量大於等於Broker的數量,可以提高吞吐率。
  • Kafka這些名詞都說不出所以然,您竟然敢說自己精通kafka
    Kafka具有快速,可擴展,耐用和容錯的發布、訂閱消息傳遞系統,被用於JMS(Java消息隊列服務)。Kafka具有更高的吞吐量,可靠性和複製特性,使其適用於跟蹤服務呼叫或物聯網傳感器數據。kafka與內存微服務一起使用,提供可靠性,可用於向 CEP(複雜事件流系統)和IoT / IFTTT式自動化系統提供事件。Kafka可以與Flume ,Spark Streaming,Storm,HBase,Flink和Spark一起工作,以實時接收,分析和處理流數據。
  • 大白話+13張圖解 Kafka
    Topic是一個邏輯上的概念,並不能直接在圖中把Topic的相關單元畫出需要注意:kafka在0.8版本以前是沒有副本機制的,所以在面對伺服器宕機的突發情況時會丟失數據,所以儘量避免使用這個版本之前的kafkaReplica - 副本kafka中的partition
  • CentOS7下簡單搭建zookeeper+kafka集群
    ,配置kakfa1、node1上解壓kafka安裝包cd /opttar -zxf kafka_2.13-2.5.0.tgzmv kafka_2.13-2.5.0 kafkacd kafkacd configcp server.properties server.properties_default
  • Kafka【入門】就這一篇!
    在集群內,一個分區由一個 Broker 負責,這個 Broker 也稱為這個分區的 Leader;當然一個分區可以被複製到多個 Broker 上來實現冗餘,這樣當存在 Broker 故障時可以將其分區重新分配到其他 Broker 來負責。下圖是一個樣例:
  • kafka異步雙活方案 mirror maker2深度解析
    mirror maker2背景通常情況下,我們都是使用一套kafka集群處理業務。但有些情況需要使用另一套kafka集群來進行數據同步和備份。在kafka早先版本的時候,kafka針對這種場景就有推出一個叫mirror maker的工具(mirror maker1,以下mm1即代表mirror maker1),用來同步兩個kafka集群的數據。
  • Kafka常見錯誤整理(不斷更新中)
    1、UnknownTopicOrPartitionExceptionorg.apache.kafka.common.errors.UnknownTopicOrPartitionException:Thisserverdoesnothostthistopic-partition報錯內容
  • 從未如此簡單:10分鐘帶你逆襲Kafka!
    【51CTO.com原創稿件】Apache Kafka 是一個快速、可擴展的、高吞吐的、可容錯的分布式「發布-訂閱」消息系統, 使用 Scala 與 Java 語言編寫,能夠將消息從一個端點傳遞到另一個端點。
  • 詳解Kafka端到端的延遲
    欺詐檢測、支付系統和股票交易平臺只是許多Apache Kafka用例中的一小部分,這些用例需要快速且可預測的數據交付。例如,在線銀行交易的欺詐檢測必須實時發生,以交付業務價值,而不需要為每個交易增加超過50-100毫秒的開銷,以保持良好的客戶體驗。
  • 圖解SparkStreaming與Kafka的整合,細節滿滿
    SparkStreaming作為Spark的一個子模塊,它有4個類型的數據源:socket數據源(測試的時候使用)HDFS數據源(會用到,但是用得不多)自定義數據源(不重要,沒怎麼見過別人會自定義數據源)擴展的數據源(比如kafka數據源,它非常重要,面試中也會問到)下面老劉圖解SparkStreaming與Kafka的整合,但只講原理,代碼就不貼了,網上太多了,老劉寫一些自己理解的東西
  • 想了解Kafka,RabbitMQ,ZeroMQ,RocketMQ,ActiveMQ之間的差異?這一篇文章就夠了!
    有kafka作者自己寫的書,網上資料也有一些。rabbitmq:多。有一些不錯的書,網上資料多。zeromq:少。沒有專門寫zeromq的書,網上的資料多是一些代碼的實現和簡單介紹。rocketmq:少。沒有專門寫rocketmq的書,網上的資料良莠不齊,官方文檔很簡潔,但是對技術細節沒有過多的描述。activemq:多。沒有專門寫activemq的書,網上資料多。
  • 圖文詳解:Kafka到底有哪些秘密讓我對它情有獨鍾呢?
    可恢復性:消息隊列降低了進程間的耦合度,所以即使一個處理消息的進程掛掉,加入隊列中的消息仍然可以在系統恢復後被處理。 順序保證:大部分消息隊列本來就是排序的,並且能保證數據會按照特定的順序來處理。Kafka保證一個Partition內的消息的有序性。 緩衝:消息隊列通過一個緩衝層來幫助任務最高效率的執行。