欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

什么是Kafka?-創(chuàng)新互聯(lián)

通過Kafka的快速入門 https://www.cnblogs.com/tree1123/p/11150927.html

創(chuàng)新互聯(lián)公司是專業(yè)的大安市網(wǎng)站建設公司,大安市接單;提供成都網(wǎng)站建設、網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行大安市網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

能了解到Kafka的基本部署,使用,但他和其他的消息中間件有什么不同呢?

Kafka的基本原理,術語,版本等等都是怎么樣的?到底什么是Kafka呢?

一、Kafka簡介

http://kafka.apache.org/intro

2011年,LinkIn開源, November 1, 2017 1.0版本發(fā)布 July 30, 2018 2.0版本發(fā)布

參考官網(wǎng)的圖:

什么是Kafka?

Kafka?用于構建實時數(shù)據(jù)管道和流式應用程序。它具有水平可擴展性、容錯性、速度極快,并在數(shù)千家公司投入生產。

kafka官網(wǎng)最新的定義:Apache Kafka? is a distributed streaming platform

也就是分布式流式平臺。

介紹:

三個特點:

  • Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
  • Store streams of records in a fault-tolerant durable way.
  • Process streams of records as they occur.

消息 持久化 流處理

兩類應用:

  • 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ù)據(jù)管道 實時流應用程序

    ?

    幾個概念

    • 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.

    • Each record consists of a key, a value, and a timestamp

    集群 topic record

    ?

    四個核心api

    • The?Producer API?allows an application to publish a stream of records to one or more Kafka topics.
    • The?Consumer API?allows an application to subscribe to one or more topics and process the stream of records produced to them.
    • The?Streams API?allows an application to act as a?stream processor, consuming an input stream from one or more topics and producing an output stream to one or more output topics, effectively transforming the input streams to output streams.
    • The?Connector API?allows building and running reusable producers or consumers that connect Kafka topics to existing applications or data systems. For example, a connector to a relational database might capture every change to a table.

    Producer API? Consumer API? Streams API Connector API

    ?

什么是Kafka?

客戶端服務器通過tcp協(xié)議 支持多種語言

主題和日志

一個主題可以有零個,一個或多個消費者訂閱寫入它的數(shù)據(jù)

對于每個主題,Kafka群集都維護一個分區(qū)日志

每個分區(qū)都是一個有序的,不可變的記錄序列,不斷附加到結構化的提交日志中。

分區(qū)中的記錄每個都被分配一個稱為偏移的順序ID號,它唯一地標識分區(qū)中的每個記錄。

什么是Kafka?

Kafka集群持久地保留所有已發(fā)布的記錄 - 無論它們是否已被消耗 - 使用可配置的保留期??梢耘渲眠@個時間。

Kafka的性能在數(shù)據(jù)大小方面實際上是恒定的,因此長時間存儲數(shù)據(jù)不是問題。

什么是Kafka?

每個消費者保留的唯一元數(shù)據(jù)是該消費者在日志中的偏移或位置。

這種偏移由消費者控制:通常消費者在讀取記錄時會線性地提高其偏移量,但事實上,由于消費者控制位置,它可以按照自己喜歡的任何順序消費記錄。例如,消費者可以重置為較舊的偏移量以重新處理過去的數(shù)據(jù),或者跳到最近的記錄并從“現(xiàn)在”開始消費。

這使得消費者特別容易使用。

生產者:

生產者將數(shù)據(jù)發(fā)布到他們選擇的主題。

為了負載均衡,可以選擇多個分區(qū)。

消費者:

消費者組

什么是Kafka?

傳統(tǒng)的消息隊列 發(fā)布訂閱 都有弊端

隊列可以擴展但不是多用戶,發(fā)布訂閱每條消費發(fā)給每個消費者,無法擴展。

但是kafka這個模式 解決了這些問題

kafka確保使用者是該分區(qū)的唯一讀者并按順序使用數(shù)據(jù),由于有許多分區(qū),這仍然可以

平衡許多消費者實例的負載。

作為存儲系統(tǒng)

作為流處理系統(tǒng)

二、常見使用

http://kafka.apache.org/uses

消息

Kafka可以替代更傳統(tǒng)的消息代理。消息代理的使用有多種原因(將處理與數(shù)據(jù)生成器分離,緩沖未處理的消息等)。與大多數(shù)消息傳遞系統(tǒng)相比,Kafka具有更好的吞吐量,內置分區(qū),復制和容錯功能,這使其成為大規(guī)模消息處理應用程序的理想解決方案。

根據(jù)我們的經驗,消息傳遞的使用通常相對較低,但可能需要較低的端到端延遲,并且通常取決于Kafka提供的強大的耐用性保證。

在這個領域,Kafka可與傳統(tǒng)的消息傳遞系統(tǒng)(如ActiveMQ或?RabbitMQ)相媲美。

網(wǎng)站活動跟蹤

站點活動(頁面查看,搜索或用戶可能采取的其他操作)發(fā)布到中心主題,每個活動類型包含一個主題。實時處理,實時監(jiān)控以及加載到Hadoop或離線數(shù)據(jù)倉庫系統(tǒng)以進行離線處理和報告。

度量

Kafka通常用于運營監(jiān)控數(shù)據(jù)。

日志聚合

許多人使用Kafka作為日志聚合解決方案的替代品。日志聚合通常從服務器收集物理日志文件,并將它們放在中央位置(可能是文件服務器或HDFS)進行處理。Kafka抽象出文件的細節(jié),并將日志或事件數(shù)據(jù)更清晰地抽象為消息流。

流處理

從0.10.0.0開始,這是一個輕量級但功能強大的流處理庫,名為Kafka Streams

三、官方文檔-核心機制

http://kafka.apache.org/documentation/

簡介 使用 快速入門 都已經學習過了

生態(tài):這里有一些kafka的生態(tài),各種Connector?可以直接連接數(shù)據(jù)庫 es等等 還可以連接其他的流處理 還有各種管理工具

confluent公司 專門做kafka的生態(tài)

https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem

kafka connect stream management

kafka考慮的幾個問題:

吞吐量: 用到了page cache 并不是硬盤讀寫

消息持久化: 這個還是靠他獨特的offset設計

負載均衡:分區(qū)副本機制

由于應用 零拷貝技術 客戶端應用epoll 所以kafka部署在linux上性能更高。

消息:kafka的消息由 key value timestamp組成 消息頭里定義了一些壓縮 版本號的信息

crc 版本號 屬性 時間戳 長度 key長度 key value長度 value

用的是二進制 不用java類

topic和partition:

這是kafka最核心,也是最重要的機制,這個機制讓他區(qū)別于其他。

offset是指某一個分區(qū)的偏移量。

topic partition offset 這三個唯一確定一條消息。

生產者的offset其實就是最新的offset。

消費者的offset是他自己維護的,他可以選擇分區(qū)最開始,最新,也可以記住他消費到哪了。

消費者數(shù)大于分區(qū),就會有消費者空著。 消費者數(shù)小于分區(qū),就會均衡消費。

因為kafka的設計是在一個partition上是不允許并發(fā)的,所以consumer數(shù)不要大于partition數(shù) ,浪費。

如果consumer從多個partition讀到數(shù)據(jù),不保證數(shù)據(jù)間的順序性,kafka只保證在一個partition上數(shù)據(jù)是有序的,但多個partition,根據(jù)你讀的順序會有不同。

增減consumer,broker,partition會導致rebalance,所以rebalance后consumer對應的partition會發(fā)生變化 。

消費者組是為了不同組的消費者可以同時消費一個分區(qū)的消息。

replica

這是為了防止服務器掛掉。

分為兩類 leader replica 和 follow replica

只有 leader replica會響應客戶端。

一旦leader replica所在的broker宕機,會選出新的leader。

kafka保證一個partition的多個replica一定不會分配到同一臺broker上。

follow與leader實時同步。

ISR

in-sync replica 與leader replica保持同步的replica集合

正常時,所有的replica都在ISR中,但如果響應太慢,就會踢出ISR。之后追上來再加進來。

ISR中至少有一個replica是活著的。

ISR中所有replica都收到消息,這個消息才是已提交狀態(tài)。

更多實時計算相關技術博文,歡迎關注實時流式計算

什么是Kafka?

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章名稱:什么是Kafka?-創(chuàng)新互聯(lián)
轉載來于:http://chinadenli.net/article32/ccoopc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、定制網(wǎng)站、網(wǎng)站排名、響應式網(wǎng)站、ChatGPT、App設計

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司