91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

網易Java研發崗二面:講講 kafka 維護消費狀態跟蹤的方法

發布時間:2020-07-21 01:25:16 來源:網絡 閱讀:563 作者:java周某人 欄目:編程語言

網易Java研發崗二面:講講 kafka 維護消費狀態跟蹤的方法


網易面試真題:講講 kafka 維護消費狀態跟蹤的方法?

解析:大部分消息系統在 broker 端的維護消息被消費的記錄:一個消息被分發到consumer 后 broker 就馬上進行標記或者等待 customer 的通知后進行標記。這樣也可以在消息在消費后立馬就刪除以減少空間占用。
但是這樣會不會有什么問題呢?如果一條消息發送出去之后就立即被標記為消費過的,一旦 consumer 處理消息時失敗了(比如程序崩潰)消息就丟失了。為了解決這個問題,很多消息系統提供了另外一個個功能:當消息被發送出去之后僅僅被標記為已發送狀態,當接到 consumer 已經消費成功的通知后才標記為已被消費的狀態。這雖然解決了消息丟失的問題,但產生了新問題,首先如果 consumer處理消息成功了但是向 broker 發送響應時失敗了,這條消息將被消費兩次。第二個問題時,broker 必須維護每條消息的狀態,并且每次都要先鎖住消息然后更改狀態然后釋放鎖。這樣麻煩又來了,且不說要維護大量的狀態數據,比如如果消息發送出去但沒有收到消費成功的通知,這條消息將一直處于被鎖定的狀態,Kafka 采用了不同的策略。Topic 被分成了若干分區,每個分區在同一時間只被一個 consumer 消費。這意味著每個分區被消費的消息在日志中的位置僅僅是一個簡單的整數:offset。這樣就很容易標記每個分區消費狀態就很容易了,僅僅需要一個整數而已。這樣消費狀態的跟蹤就很簡單了。

Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者在網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。在大廠Kafka也是經常被問到的一個問題,我學習Kafka的時候也整理一些學習筆記,和收集了很多的面試真題,希望能夠對大家有一定的幫助。

歷年來關于Kafka的一些面試真題(含解析):

  1. 如何獲取 topic 主題的列表

  2. 生產者和消費者的命令行是什么?

  3. consumer 是推還是拉?

  4. 講講 kafka 維護消費狀態跟蹤的方法

  5. 講一下主從同步

  6. 為什么需要消息系統,mysql 不能滿足需求嗎?

  7. Zookeeper 對于 Kafka 的作用是什么?

  8. 數據傳輸的事務定義有哪三種?

  9. Kafka 判斷一個節點是否還活著有那兩個條件?

  10. Kafka 與傳統 MQ 消息系統之間有三個關鍵區別

  11. 講一講 kafka 的 ack 的三種機制

  12. 消費者故障,出現活鎖問題如何解決?

  13. 如何控制消費的位置

  14. kafka 分布式(不是單機)的情況下,如何保證消息的順序消費?

  15. kafka 的高可用機制是什么?

  16. kafka 如何減少數據丟失

  17. kafka 如何不消費重復數據?比如扣款,我們不能重復的扣。

網易Java研發崗二面:講講 kafka 維護消費狀態跟蹤的方法


kafka面試真題解析

我整理的關于Kafka(含核心知識點以及思維導圖xmind):

網易Java研發崗二面:講講 kafka 維護消費狀態跟蹤的方法


Kafka 概念:

Kafka 是一種高吞吐量、分布式、基于發布/訂閱的消息系統,最初由 LinkedIn 公司開發,使用Scala 語言編寫,目前是 Apache 的開源項目。

  1. broker:Kafka 服務器,負責消息存儲和轉發

  2. topic:消息類別,Kafka 按照 topic 來分類消息

  3. partition:topic 的分區,一個 topic 可以包含多個 partition,topic 消息保存在各個partition 上

  4. offset:消息在日志中的位置,可以理解是消息在 partition 上的偏移量,也是代表該消息的唯一序號

  5. Producer:消息生產者

  6. Consumer:消息消費者

  7. Consumer Group:消費者分組,每個 Consumer 必須屬于一個 group

  8. Zookeeper:保存著集群 broker、topic、partition 等 meta 數據;另外,還負責 broker 故障發現,partition leader 選舉,負載均衡等功能

Kafka 數據存儲設計:

  • partition 的數據文件(offset,MessageSize,data)

  • 數據文件分段 segment(順序讀寫、分段命令、二分查找)

  • 數據文件索引(分段索引、稀疏存儲)

生產者設計:

  • 負載均衡(partition 會均衡分布到不同 broker 上)

  • 批量發送

  • 壓縮(GZIP 或 Snappy)

消費者設計:

Consumer Group

讀者福利:

由于題量較多,篇幅的限制,文章中的面試題分享沒有全部附上詳細的解析,希望各位同仁理解

但是整理成了一份詳細的PDF文檔可分享給大家

領取方式:關注我的供種號(Java周某人)即可領取

近千道大廠面試題整理(PDF)帶詳細解析

網易Java研發崗二面:講講 kafka 維護消費狀態跟蹤的方法


向AI問一下細節

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

AI

额济纳旗| 布尔津县| 阜城县| 台州市| 乐亭县| 阿拉善盟| 五寨县| 定远县| 盐边县| 营山县| 望江县| 米脂县| 仙桃市| 津南区| 陆良县| 涟源市| 曲阳县| 兰州市| 临高县| 阿尔山市| 合江县| 禄丰县| 巍山| 栖霞市| 遵义市| 延川县| 洛川县| 荔波县| 册亨县| 娄底市| 崇仁县| 林州市| 临泉县| 长阳| 罗甸县| 临武县| 扶沟县| 定襄县| 临泽县| 颍上县| 聂拉木县|