真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

kafka學習筆記-創(chuàng)新互聯(lián)

1. 官網(wǎng)?

?????????????????????????Apache Kafka

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、革吉網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5開發(fā)、成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為革吉等各大城市提供網(wǎng)站開發(fā)制作服務。2. akf

X軸拆分: 水平復制,就是講單體系統(tǒng)多運行幾個實例,做集群加負載均衡的模式,主主、主備、主從。解決單點,高可用問題

Y軸拆分: 基于不同的業(yè)務拆分

Z軸拆分: 基于數(shù)據(jù)拆分。分片分治

3. 概念

Apache Kafka是Apache軟件基金會的開源的流處理平臺,該平臺提供了消息的訂閱與發(fā)布的消息隊列,一般用作系統(tǒng)間解耦、異步通信、削峰填谷等作用。同時Kafka又提供了Kafka streaming插件包實現(xiàn)了實時在線流處理。相比較一些專業(yè)的流處理框架不同,Kafka Streaming計算是運行在應用端,具有簡單、入門要求低、部署方便等優(yōu)點。

有的kafka消息可以被多個消費者進行消費,有的只能有一個消費者進行消費

Kafka集群以Topic形式負責分類集群中的Record每一個Record屬于一個Topic。每個Topic底層都會

Kafka集群以Topic形式負責分類集群中的Record,每一個Record屬于一個Topic。每個Topic底層都會對應一組分區(qū)的日志用于持久化Topic中的Record。同時在Kafka集群中,Topic的每一個日志的分區(qū)都一定會有1個Borker擔當該分區(qū)的Leader,其他的Broker擔當該分區(qū)的follower,Leader負責分區(qū)數(shù)據(jù)的讀寫操作,follower負責同步改分區(qū)的數(shù)據(jù)。這樣如果分區(qū)的Leader宕機,該分區(qū)的其他follower會選取出新的leader繼續(xù)負責該分區(qū)數(shù)據(jù)的讀寫。其中集群的中Leader的監(jiān)控和Topic的部分元數(shù)據(jù)是存儲在Zookeeper中.

只能保證分區(qū)內(nèi)部的有序性;同一個topic的不同分區(qū),不能保證數(shù)據(jù)有序

每個消費者可以控制自己的消費偏移量,多個消費者消費消息互不干擾

offset是下一次要讀取的位置

kafka的消息消費是以消費組的形式進行消費

同一消費組中的消費者對消息進行均分消費

消費組個數(shù)一般要小于topic中的分區(qū)數(shù)

kafka高吞吐量,即使是普通的服務器,也可以支持每秒百萬級的寫入,超過了大部分的消息中間件

kafka的消息是以日志的形式存儲在磁盤中,為了優(yōu)化寫入速度,采用了順序寫入和MMFile兩個技術。順序寫可以減少磁盤尋址時間,MMFile(內(nèi)存映射文件)可以減少IO,使寫入性能逼近內(nèi)存

kafka的服務將數(shù)據(jù)往pageCache中寫入,由pageCache寫入磁盤

4. DMA

常規(guī)IO操作會讓CPU阻塞,等待從磁盤中讀取數(shù)據(jù);

DMA(直接內(nèi)存訪問)讀取會新增DMA,減少CPU的阻塞

零拷貝

5. 知識點

副本因子的個數(shù)不能大于broker的個數(shù)?

kafka中的分區(qū)數(shù)只能增,不能減

kafka的操作,默認是異步的

kafka也需要對key、value進行序列化(redis也需要)

生產(chǎn)者發(fā)送消息時,對消息進行序列化

消費者消費消息時,要對消息進行反序列化

subscribe消費時,通過消費組實現(xiàn)負載均衡;

assign消費時,可以指定分區(qū)、offset進行消費

6. 默認的分區(qū)策略

1. 如果指定了分區(qū),使用指定的

2. 如果沒有指定分區(qū),key存在,那么分區(qū)基于key的hash值

3. 如果沒有指定分區(qū),也沒有key,那么輪訊

也可以自定義分區(qū)策略,實現(xiàn)Partitioner接口

默認沒有攔截器,可以自定義攔截器

攔截器可以對發(fā)送過來的消息進行修改

當消費者首次消費時(kafka中沒有記載offset),默認消費最新的消息,也可以進行設置

可以設置offset自動提交的時間間隔

7.?ack

ack可以保證消息可靠性

8.?重復消費

生產(chǎn)者正常發(fā)生消息,消費者正常消費消息,但是消費完消息給生產(chǎn)者發(fā)送應答失敗。生產(chǎn)者會認為消息沒有消費成功,會重試,此時會造成消息重復消費

重試次數(shù),不包含第一次發(fā)送

怎么避免消息重復消費:

服務端對消息進行校驗,看看是否是重復的請求

添加唯一標識,并記錄該標識是否消費完成

冪等:

kafka中冪等默認是關閉的,在使用冪等的時候,必須開啟retries=true和acks=all

kafka的冪等只能保證一條記錄在分區(qū)內(nèi)發(fā)送的原子性;要保證多分區(qū)的多條記錄之間的完整性,需要事務

9. 事務

kafka的事務分為生產(chǎn)者事務、消費者&生產(chǎn)者事務

kafka開啟事務后,需要將隔離級別改成read_committed(默認是read_uncommitted)

消費者端開啟事務后,需要關閉自動提交offset

事務流程

10. 數(shù)據(jù)同步機制(leader到follower)?

partition底層是按照segment(段)對文件進行存儲

HW(high watermarker):高水位線,HW之前的數(shù)據(jù)都已經(jīng)完成備份。當所有節(jié)點都備份成功,leader才會更新HW

LEO(log end offset):標識的是分區(qū)中最后一條消息的下一個位置,每個分區(qū)副本有自己的LEO

ISR:是leader維護的一份處于同步的副本集合,要是followerf同步很慢,會被踢出isr

OSR:于leader副本同步滯后過多的副本(不包括leader副本)將組成?OSR

AR:分區(qū)中的所有副本統(tǒng)稱為?AR。AR=ISR+OSR

kafka0.11版本之前,通過高水位(HW)來保持數(shù)據(jù)同步

缺點:

1. 數(shù)據(jù)丟失

2. leader和follower數(shù)據(jù)不一致

kafka0.11之后,引入了Leader Epoch來解決數(shù)據(jù)同步問題,代替HW作為消息的截斷點

11. 監(jiān)控

kafka eagle可以對kafka進行監(jiān)控

12. 整合SpringBoot

Springboot中使用@KafkaListeners進行監(jiān)聽,接收消息

使用@SendTo發(fā)送消息

也可以使用KafkaTemplate進行操作

kafka的事務也支持@Transactional注解

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享題目:kafka學習筆記-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://weahome.cn/article/doddcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部