1. 程式人生 > >Kafka實戰-入門

Kafka實戰-入門

1.概述

  經過一個多月的時間觀察,業務上在整合Kafka後,各方面還算穩定,這裡打算抽時間給大家分享一下Kafka在實際場景中的一些使用心得。本篇部落格打算先給大家入個門,讓大家對Kafka有個初步的瞭解,知道Kafka是做什麼的,下面是本篇部落格的目錄內容:

  • Kafka背景
  • Kafka應用場景
  • Kafka架構原理

  下面開始今天的部落格分享內容。

2.Kafka背景

  Kafka它本質上是一個訊息系統,由當時從LinkedIn出來創業的三人小組開發,他們開發出了Apache Kafka實時資訊佇列技術,該技術致力於為各行各業的公司提供實時資料處理服務解決方案。Kafka為LinkedIn的中樞神經系統,管理從各個應用程式的匯聚,這些資料經過處理後再被分發到其他地方。Kafka不同於傳統的企業資訊佇列系統,它是以近乎實時的方式處理流經一個公司的所有資料,目前已經服務於LinkedIn、Netflix、Uber以及Verizon,併為此建立了實時資訊處理平臺。

  流水資料是所有站點對其網站使用情況做報表時都要用到的資料中最常用的一部分,流水資料包括PV,瀏覽內容資訊以及搜尋記錄等。這些資料通常是先以日誌檔案的形式存在,然後有周期的去對這些日誌檔案進行統計分析處理,然後獲得需要的KPI指標結果。

3.Kafka應用場景

  我們在接觸一門新技術或是新語言時,得明白這門技術(或是語言)的應用場景,也就說要明白它能做什麼,服務的物件是誰,下面用一個圖來說明,如下圖所示:

  首先,Kafka可以應用於訊息系統,比如,當下較為熱門的訊息推送,這些訊息推送系統的訊息源,可以使用Kafka作為系統的核心組建來完成訊息的生產和訊息的消費。然後是網站的行跡,我們可以將企業的Portal,使用者的操作記錄等資訊傳送到Kafka中,按照實際業務需求,可以進行實時監控,或者做離線處理等。最後,一個是日誌收集,類似於Flume套件這樣的日誌收集系統,但Kafka的設計架構採用push/pull,適合異構叢集,Kafka可以批量提交訊息,對Producer來說,在效能方面基本上是無消耗的,而在Consumer端中,我們可以使用HDFS這類的分散式檔案儲存系統進行儲存。

4.Kafka架構原理

  Kafka的設計之初是希望做一個統一的資訊收集平臺,能夠實時的收集反饋資訊,並且具有良好的容錯能力。Kafka中我們最直觀的感受就是它的消費者與生產者,如下圖所示:

4.1Producer And Consumer

  這裡Kafka對訊息的儲存是根據Topic進行歸類的,由訊息生產者(Producer)和訊息消費者(Consumer)組成,另外,每一個Server稱為一個Broker。對於Kafka叢集而言,Producer和Consumer都依賴於ZooKeeper來保證資料的一致性。

4.2Topic

  在每條訊息輸送到Kafka集群后,訊息都會由一個Type,這個Type被稱為一個Topic,不同的Topic的訊息是分開儲存的。如下圖所示:

  一個Topic會被歸類為一則訊息,每個Topic可以被分割為多個Partition,在每條訊息中,它在檔案中的位置稱為Offset,用於標記唯一一條訊息。在Kafka中,訊息被消費後,訊息仍然會被保留一定時間後在刪除,比如在配置資訊中,檔案資訊保留7天,那麼7天后,不管Kafka中的訊息是否被消費,都會被刪除;以此來釋放磁碟空間,減少磁碟的IO消耗。

  在Kafka中,一個Topic的多個分割槽,被分佈在Kafka叢集的多個Server上,每個Server負責分割槽中訊息的讀寫操作。另外,Kafka還可以配置分割槽需要備份的個數,以便提高可用行。由於用到來ZK來協調,每個分割槽都有一個Server為Leader狀態,服務對外響應(如讀寫操作),若該Leader宕機,會由其他的Follower來選舉出新的Leader來保證叢集的高可用性。

5.總結

  總體來說,介紹Kafka的相關背景,概述及原理,這些較為偏理論,概念性較強,需要大家認真的去理解、琢磨,這裡可以大致熟悉一下,心中有個輪廓,後面會陸續介紹Kafka的實戰用法,讓大家在實際業務和編碼中去體會Kafka的這些原理。

6.結束語

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!

相關推薦

Kafka實戰入門

1.概述   經過一個多月的時間觀察,業務上在整合Kafka後,各方面還算穩定,這裡打算抽時間給大家分享一下Kafka在實際場景中的一些使用心得。本篇部落格打算先給大家入個門,讓大家對Kafka有個初步的瞭解,知道Kafka是做什麼的,下面是本篇部落格的目錄內容: Kafka背景 Kafka應用場景

KafkaOffsetMonitor Kafka實戰KafkaOffsetMonitor

1.概述   前面給大家介紹了Kafka的背景以及一些應用場景,並附帶上演示了Kafka的簡單示例。然後,在開發的過程當中,我們會發現一些問題,那就是訊息的監控情況。雖然,在啟動Kafka的相關服務後,我們生產訊息和消費訊息會在終端控制檯顯示這些記錄資訊,但是,這樣始終

Kafka實戰簡單示例

1.概述   上一篇部落格《Kafka實戰-Kafka Cluster》中,為大家介紹了Kafka叢集的安裝部署,以及對Kafka叢集Producer/Consumer、HA等做了相關測試,今天我們來開發一個Kafka示例,練習如何在Kafka中進行程式設計,下面是今天的分享的目錄結構: 開發環境

Kafka實戰Kafka Cluster

1.概述   在《Kafka實戰-入門》一篇中,為大家介紹了Kafka的相關背景、原理架構以及一些關鍵知識點,本篇部落格為大家來贅述一下Kafka Cluster的相關內容,下面是今天為大家分享的目錄: 基礎軟體的準備 Kafka Cluster的部署 Send Messages HA特性

Kafka實戰KafkaOffsetMonitor

1.概述   前面給大家介紹了Kafka的背景以及一些應用場景,並附帶上演示了Kafka的簡單示例。然後,在開發的過程當中,我們會發現一些問題,那就是訊息的監控情況。雖然,在啟動Kafka的相關服務後,我們生產訊息和消費訊息會在終端控制檯顯示這些記錄資訊,但是,這樣始終不夠友好,而且,在實際開發中,我們不

kubernetes k8s 之入門實戰redis叢集

一 環境準備: centos 7 docker 1.12.6 kubernetes: 1.5.2 環境安裝: sudo yum -y install kubernetes 二 通過rc建立redis-master的pod yaml檔案:

Kafka專案實戰使用者日誌上報實時統計之編碼實踐

1.概述 該課程我以使用者實時上報日誌案例為基礎,帶著大家去完成各個KPI的編碼工作,實現生產模組、消費模組,資料持久化,以及應用排程等工作, 通過對這一系列流程的演示,讓大家能夠去掌握Kafka專案的相關編碼以及排程流程。下面,我們首先來預覽本課程所包含的課時,他們分別

kafka安裝以及入門

producer simple rod 0.11 scribe 開啟 image inux put 一、安裝 下載最新版kafka,Apache Kafka,然後上傳到Linux,我這裏有三臺機器,192.168.127.129,130,131 。 進入上傳目錄,解壓到/

kafka實戰

www ase htm 需要 sum pro fig line from 一、下載地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz Java: http

Sping Boot入門實戰入門篇(三):Spring Boot屬性配置

git 測試 add 禁用 rop fix ron org set   該篇為Sping Boot入門到實戰系列入門篇的第三篇。介紹Spring Boot的屬性配置。   傳統的Spring Web應用自定義屬性一般是通過添加一個demo.properties配置文件(

項目實戰 python入門到應用

計算機 編程 python python免費課程,掃碼領取【添加微信wanmen269】和王玉傑混沌巡洋艦聯合創始人,web開發工程師學校python應用~基礎理論+項目實戰,全面入門編程領域!掃碼添加微信並回復【python入門】即可獲得課程資料喲~ 項目實戰 python入門到應用

Kafka實戰:如何把Kafka消息時延秒降10倍

Kafka 消息服務 時延 背景 中軟獨家中標稅務核心征管系統,全國34個省國/地稅。電子稅務局15省格局。大數據×××局點,中國軟件電子稅務局技術路徑:核心征管 + 納稅服務 業務應用分布式上雲改造。 業務難題 如上圖所示是模擬客戶的業務網頁構建的一個並發訪問模型。用戶在頁面點擊從而產生一個HT

elasticsearch技術解析與實戰(一) 入門和索引

ilog reat date str last dice elastics replicas nod GET _cat/nodes GET _cat/health GET _cat/shards GET http://10.37.84.124:9200/secislan

(轉)kafka實戰

ucc 終端 4.2 tail comm 原因 fault con 目錄 轉自https://www.cnblogs.com/hei12138/p/7805475.html 1. kafka介紹 1.1. 主要功能 根據官網的介紹,

DataPipeline |Apache Kafka實戰作者胡夕:Apache Kafka監控與調優

推出 充足 不足 交互 進入 時間片 第一條 小時 send 胡夕,《Apache Kafka實戰》作者,北航計算機碩士畢業,現任某互金公司計算平臺總監,曾就職於IBM、搜狗、微博等公司。國內活躍的Kafka代碼貢獻者。 前言雖然目前Apache Kafka已經全面進化成

ActiveMQ RabbitMQ RokcetMQ Kafka實戰 消息隊列中間件視頻教程

基於 存儲 中間 商品數據 ssa lan 如何 spa ring ActiveMQ第01節:ActiveMQ入門和消息中間件第02節:JMS基本概念和模型第03節:JMS的可靠性機制第04節:JMS的API結構和開發步驟_rec_rec第05節:Broker的啟動方式吖第

《Apache Kafka 實戰》讀書筆記-認識Apache Kafka

                《Apache Kafka 實戰》讀書筆記-認識Apache Kafka                                            作者:尹正傑 版權宣告:原創作品,謝絕轉載!否則將追究法律責任。      

分享《Flask Web開發實戰入門、進階與原理解析》PDF+源代碼

1.0 baidu rip 更多 aid size log fff web 下載:https://pan.baidu.com/s/1gbC5uhh_vjVbDk55_p7SOA 更多資料分享:http://blog.51cto.com/3215120 《Flask Web開

《Flask Web開發實戰入門、進階與原理解析》PDF+原始碼

下載:https://pan.baidu.com/s/1gbC5uhh_vjVbDk55_p7SOA 更多資料分享:http://blog.51cto.com/3215120 《Flask Web開發實戰:入門、進階與原理解析》PDF,帶目錄書籤,文字可以複製貼上;配套原始碼。 一本面向Python程式

kafka簡介和入門

一、Kafka概述 Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally scalable, fault-tolerant, wicked fast, and run