通過(guò)Kafka的快速入門(mén) https://www.cnblogs.com/tree1123/p/11150927.html
創(chuàng)新互聯(lián)公司是專業(yè)的大安市網(wǎng)站建設(shè)公司,大安市接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行大安市網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!能了解到Kafka的基本部署,使用,但他和其他的消息中間件有什么不同呢?
Kafka的基本原理,術(shù)語(yǔ),版本等等都是怎么樣的?到底什么是Kafka呢?
http://kafka.apache.org/intro
2011年,LinkIn開(kāi)源, November 1, 2017 1.0版本發(fā)布 July 30, 2018 2.0版本發(fā)布
參考官網(wǎng)的圖:
Kafka?用于構(gòu)建實(shí)時(shí)數(shù)據(jù)管道和流式應(yīng)用程序。它具有水平可擴(kuò)展性、容錯(cuò)性、速度極快,并在數(shù)千家公司投入生產(chǎn)。
kafka官網(wǎng)最新的定義:Apache Kafka? is a distributed streaming platform
也就是分布式流式平臺(tái)。
介紹:
三個(gè)特點(diǎn):
消息 持久化 流處理
兩類應(yīng)用:
Building real-time streaming data pipelines that reliably get data between systems or applications
Building real-time streaming applications that transform or react to the streams of data
實(shí)時(shí)流數(shù)據(jù)管道 實(shí)時(shí)流應(yīng)用程序
?
幾個(gè)概念
Kafka is run as a cluster on one or more servers that can span multiple datacenters.
The Kafka cluster stores streams of?records?in categories called?topics.
集群 topic record
?
四個(gè)核心api
Producer API? Consumer API? Streams API Connector API
?
客戶端服務(wù)器通過(guò)tcp協(xié)議 支持多種語(yǔ)言
主題和日志
一個(gè)主題可以有零個(gè),一個(gè)或多個(gè)消費(fèi)者訂閱寫(xiě)入它的數(shù)據(jù)
對(duì)于每個(gè)主題,Kafka群集都維護(hù)一個(gè)分區(qū)日志
每個(gè)分區(qū)都是一個(gè)有序的,不可變的記錄序列,不斷附加到結(jié)構(gòu)化的提交日志中。
分區(qū)中的記錄每個(gè)都被分配一個(gè)稱為偏移的順序ID號(hào),它唯一地標(biāo)識(shí)分區(qū)中的每個(gè)記錄。
Kafka集群持久地保留所有已發(fā)布的記錄 - 無(wú)論它們是否已被消耗 - 使用可配置的保留期。可以配置這個(gè)時(shí)間。
Kafka的性能在數(shù)據(jù)大小方面實(shí)際上是恒定的,因此長(zhǎng)時(shí)間存儲(chǔ)數(shù)據(jù)不是問(wèn)題。
每個(gè)消費(fèi)者保留的唯一元數(shù)據(jù)是該消費(fèi)者在日志中的偏移或位置。
這種偏移由消費(fèi)者控制:通常消費(fèi)者在讀取記錄時(shí)會(huì)線性地提高其偏移量,但事實(shí)上,由于消費(fèi)者控制位置,它可以按照自己喜歡的任何順序消費(fèi)記錄。例如,消費(fèi)者可以重置為較舊的偏移量以重新處理過(guò)去的數(shù)據(jù),或者跳到最近的記錄并從“現(xiàn)在”開(kāi)始消費(fèi)。
這使得消費(fèi)者特別容易使用。
生產(chǎn)者:
生產(chǎn)者將數(shù)據(jù)發(fā)布到他們選擇的主題。
為了負(fù)載均衡,可以選擇多個(gè)分區(qū)。
消費(fèi)者:
消費(fèi)者組
傳統(tǒng)的消息隊(duì)列 發(fā)布訂閱 都有弊端
隊(duì)列可以擴(kuò)展但不是多用戶,發(fā)布訂閱每條消費(fèi)發(fā)給每個(gè)消費(fèi)者,無(wú)法擴(kuò)展。
但是kafka這個(gè)模式 解決了這些問(wèn)題
kafka確保使用者是該分區(qū)的唯一讀者并按順序使用數(shù)據(jù),由于有許多分區(qū),這仍然可以
平衡許多消費(fèi)者實(shí)例的負(fù)載。
作為存儲(chǔ)系統(tǒng)
作為流處理系統(tǒng)
http://kafka.apache.org/uses
Kafka可以替代更傳統(tǒng)的消息代理。消息代理的使用有多種原因(將處理與數(shù)據(jù)生成器分離,緩沖未處理的消息等)。與大多數(shù)消息傳遞系統(tǒng)相比,Kafka具有更好的吞吐量,內(nèi)置分區(qū),復(fù)制和容錯(cuò)功能,這使其成為大規(guī)模消息處理應(yīng)用程序的理想解決方案。
根據(jù)我們的經(jīng)驗(yàn),消息傳遞的使用通常相對(duì)較低,但可能需要較低的端到端延遲,并且通常取決于Kafka提供的強(qiáng)大的耐用性保證。
在這個(gè)領(lǐng)域,Kafka可與傳統(tǒng)的消息傳遞系統(tǒng)(如ActiveMQ或?RabbitMQ)相媲美。
站點(diǎn)活動(dòng)(頁(yè)面查看,搜索或用戶可能采取的其他操作)發(fā)布到中心主題,每個(gè)活動(dòng)類型包含一個(gè)主題。實(shí)時(shí)處理,實(shí)時(shí)監(jiān)控以及加載到Hadoop或離線數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)以進(jìn)行離線處理和報(bào)告。
Kafka通常用于運(yùn)營(yíng)監(jiān)控?cái)?shù)據(jù)。
許多人使用Kafka作為日志聚合解決方案的替代品。日志聚合通常從服務(wù)器收集物理日志文件,并將它們放在中央位置(可能是文件服務(wù)器或HDFS)進(jìn)行處理。Kafka抽象出文件的細(xì)節(jié),并將日志或事件數(shù)據(jù)更清晰地抽象為消息流。
從0.10.0.0開(kāi)始,這是一個(gè)輕量級(jí)但功能強(qiáng)大的流處理庫(kù),名為Kafka Streams
http://kafka.apache.org/documentation/
簡(jiǎn)介 使用 快速入門(mén) 都已經(jīng)學(xué)習(xí)過(guò)了
生態(tài):這里有一些kafka的生態(tài),各種Connector?可以直接連接數(shù)據(jù)庫(kù) es等等 還可以連接其他的流處理 還有各種管理工具
confluent公司 專門(mén)做kafka的生態(tài)
https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem
kafka connect stream management
kafka考慮的幾個(gè)問(wèn)題:
吞吐量: 用到了page cache 并不是硬盤(pán)讀寫(xiě)
消息持久化: 這個(gè)還是靠他獨(dú)特的offset設(shè)計(jì)
負(fù)載均衡:分區(qū)副本機(jī)制
由于應(yīng)用 零拷貝技術(shù) 客戶端應(yīng)用epoll 所以kafka部署在linux上性能更高。
消息:kafka的消息由 key value timestamp組成 消息頭里定義了一些壓縮 版本號(hào)的信息
crc 版本號(hào) 屬性 時(shí)間戳 長(zhǎng)度 key長(zhǎng)度 key value長(zhǎng)度 value
用的是二進(jìn)制 不用java類
topic和partition:
這是kafka最核心,也是最重要的機(jī)制,這個(gè)機(jī)制讓他區(qū)別于其他。
offset是指某一個(gè)分區(qū)的偏移量。
topic partition offset 這三個(gè)唯一確定一條消息。
生產(chǎn)者的offset其實(shí)就是最新的offset。
消費(fèi)者的offset是他自己維護(hù)的,他可以選擇分區(qū)最開(kāi)始,最新,也可以記住他消費(fèi)到哪了。
消費(fèi)者數(shù)大于分區(qū),就會(huì)有消費(fèi)者空著。 消費(fèi)者數(shù)小于分區(qū),就會(huì)均衡消費(fèi)。
因?yàn)閗afka的設(shè)計(jì)是在一個(gè)partition上是不允許并發(fā)的,所以consumer數(shù)不要大于partition數(shù) ,浪費(fèi)。
如果consumer從多個(gè)partition讀到數(shù)據(jù),不保證數(shù)據(jù)間的順序性,kafka只保證在一個(gè)partition上數(shù)據(jù)是有序的,但多個(gè)partition,根據(jù)你讀的順序會(huì)有不同。
增減consumer,broker,partition會(huì)導(dǎo)致rebalance,所以rebalance后consumer對(duì)應(yīng)的partition會(huì)發(fā)生變化 。
消費(fèi)者組是為了不同組的消費(fèi)者可以同時(shí)消費(fèi)一個(gè)分區(qū)的消息。
replica
這是為了防止服務(wù)器掛掉。
分為兩類 leader replica 和 follow replica
只有 leader replica會(huì)響應(yīng)客戶端。
一旦leader replica所在的broker宕機(jī),會(huì)選出新的leader。
kafka保證一個(gè)partition的多個(gè)replica一定不會(huì)分配到同一臺(tái)broker上。
follow與leader實(shí)時(shí)同步。
ISR
in-sync replica 與leader replica保持同步的replica集合
正常時(shí),所有的replica都在ISR中,但如果響應(yīng)太慢,就會(huì)踢出ISR。之后追上來(lái)再加進(jìn)來(lái)。
ISR中至少有一個(gè)replica是活著的。
ISR中所有replica都收到消息,這個(gè)消息才是已提交狀態(tài)。
更多實(shí)時(shí)計(jì)算相關(guān)技術(shù)博文,歡迎關(guān)注實(shí)時(shí)流式計(jì)算
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱:什么是Kafka?-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://aaarwkj.com/article32/ccoopc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、網(wǎng)站排名、響應(yīng)式網(wǎng)站、ChatGPT、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容