Kafka精华问答 | Kafka有哪些使用场景?
Kafka is a distributed,partitioned,replicated commit logservice。它提供了類似于JMS的特性,但是在設計實現上完全不同,此外它并不是JMS規范的實現。今天就讓我們一起來看看關于Kafka 的精華問答吧。
1
Q:Kafka的使用場景
A:?1、Messaging? ?
? ? 對于一些常規的消息系統,kafka是個不錯的選擇;partitons/replication和容錯,可以使kafka具有良好的擴展性和性能優勢.不過到目前為止,我們應該很清楚認識到,kafka并沒有提供JMS中的"事務性""消息傳輸擔保(消息確認機制)""消息分組"等企業級特性;kafka只能使用作為"常規"的消息系統,在一定程度上,尚未確保消息的發送與接收絕對可靠(比如,消息重發,消息發送丟失等)
? ? 2、Websit activity tracking
? ? kafka可以作為"網站活性跟蹤"的最佳工具;可以將網頁/用戶操作等信息發送到kafka中.并實時監控,或者離線統計分析等
? ? 3、Log Aggregation
? ? kafka的特性決定它非常適合作為"日志收集中心";application可以將操作日志"批量""異步"的發送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/壓縮消息等,這對producer端而言,幾乎感覺不到性能的開支.此時consumer端可以使hadoop等其他系統化的存儲和分析系統.
Q:Kafka有哪些特性?
A:- 高吞吐量、低延遲:kafka每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒,每個topic可以分多個partition, consumer group 對partition進行consume操作。
- 可擴展性:kafka集群支持熱擴展
- 持久性、可靠性:消息被持久化到本地磁盤,并且支持數據備份防止數據丟失
- 容錯性:允許集群中節點失敗(若副本數量為n,則允許n-1個節點失敗)
- 高并發:支持數千個客戶端同時讀寫
Q:Kafka存在哪些組件?
A:一個MQ需要哪些部分?生產、消費、消息類別、存儲等等。
? 對于kafka而言,kafka服務就像是一個大的水池。不斷的生產、存儲、消費著各種類別的消息。那么kafka由何組成呢?
> Kafka服務:
? > Topic:主題,Kafka處理的消息的不同分類。
? > Broker:消息代理,Kafka集群中的一個kafka服務節點稱為一個broker,主要存儲消息數據。存在硬盤中。每個topic都是有分區的。
? > Partition:Topic物理上的分組,一個topic在broker中被分為1個或者多個partition,分區在創建topic的時候指定。
? > Message:消息,是通信的基本單位,每個消息都屬于一個partition
> Kafka服務相關
? > Producer:消息和數據的生產者,向Kafka的一個topic發布消息。
? > Consumer:消息和數據的消費者,定于topic并處理其發布的消息。
? > Zookeeper:協調kafka的正常運行。
Q:Kafka的主要功能有哪些?
?
A:根據官網的介紹,ApacheKafka?是一個分布式流媒體平臺,它主要有3種功能:
1:It lets you publish and subscribe to streams of records.發布和訂閱消息流,這個功能類似于消息隊列,這也是kafka歸類為消息隊列框架的原因
2:It lets you store streams of records in a fault-tolerant way.以容錯的方式記錄消息流,kafka以文件的方式來存儲消息流
3:It lets you process streams of records as they occur.可以再消息發布的時候進行處理
Q:Kafka存儲策略
A:1)kafka以topic來進行消息管理,每個topic包含多個partition,每個partition對應一個邏輯log,有多個segment組成。
2)每個segment中存儲多條消息(見下圖),消息id由其邏輯位置決定,即從消息id可直接定位到消息的存儲位置,避免id到位置的額外映射。
3)每個part在內存中對應一個index,記錄每個segment中的第一條消息偏移。
4)發布者發到某個topic的消息會被均勻的分布到多個partition上(或根據用戶指定的路由規則進行分布),broker收到發布消息往對應partition的最后一個segment上添加該消息,當某個segment上的消息條數達到配置值或消息發布時間超過閾值時,segment上的消息會被flush到磁盤,只有flush到磁盤上的消息訂閱者才能訂閱到,segment達到一定的大小后將不會再往該segment寫數據,broker會創建新的segment。
小伙伴們沖鴨,后臺留言區等著你!
關于kafka,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數據白皮書整理資料!
推薦閱讀:
在線公開課 | 從理論走向實踐,多角度詳解Cloud Native
蘋果春季發布會:庫克絕不玩別人玩剩下的!
中國區塊鏈職業發展現狀: 30歲前不做開發; 平均薪資僅38.4萬; 跳槽薪資漲三成 (附完整報告下載資源)
庫克談“唱衰蘋果”:一派胡言!
上海交大CV博導微信群辱罵學生,已停止教學
李沐團隊新作Gluon,復現CV經典模型到BERT,簡單好用 | 強烈推薦
日本樂天要求員工學編程,AI 進中小學課堂,全民編程時代來了!
喜歡就點擊“在看”吧
總結
以上是生活随笔為你收集整理的Kafka精华问答 | Kafka有哪些使用场景?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 要长久保持一个家的干净,需要学会哪些家务
- 下一篇: Boost:是否对齐的测试程序