国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

kafka的ISR工作機(jī)制原理

這篇具有很好參考價(jià)值的文章主要介紹了kafka的ISR工作機(jī)制原理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

昨日內(nèi)容回顧:
?? ?- ES的加密及客戶端的連接方式,比如logstash,filebeat,curl,es-head,postman...
?? ?- zk單點(diǎn)部署
?? ?- kafka單點(diǎn)部署
?? ?- kafka的集群擴(kuò)容
?? ?- kafka集群架構(gòu)
?? ?- kafka的堆內(nèi)存調(diào)優(yōu)
?? ?- kafka的集群宏觀架構(gòu)
?? ?

Q1: 為什么需要配置"dvertised.listeners".
?? ?因?yàn)闆]有配置主機(jī)名解析導(dǎo)致的問題。
?? ?
Q2: 一個(gè)分區(qū)數(shù)寫入數(shù)據(jù)是有序的,但為什么多個(gè)分區(qū)數(shù)寫入就是無序的呢?
?? ?因?yàn)橄M(fèi)者是從多個(gè)分區(qū)讀取的,順序無法確定。
?? ?
Q3: leader同步follower是如何同步的?
?? ?follower主動(dòng)去leader拉取數(shù)據(jù)。

Q4: leader掛掉之后發(fā)生了哪些事,請(qǐng)說明?
?? ?leader掛掉后,follower會(huì)成為新的leader,需要借助zookeeper實(shí)現(xiàn)。


Q5: follower掛掉之后如何解決,會(huì)發(fā)生哪些問題?
?? ?leader會(huì)根據(jù)replica.lag.time.max.ms定義的間隔時(shí)間,超出該范圍leader就會(huì)將其剔除ISR列表。

Q6: 當(dāng)follower數(shù)據(jù)和leader不同時(shí),又會(huì)發(fā)生啥事?
?? ?leader會(huì)根據(jù)replica.lag.time.max.ms定義的間隔時(shí)間,超出該范圍leader就會(huì)將其剔除ISR列表。

Q7: 當(dāng)消費(fèi)者數(shù)據(jù)延遲時(shí)如何解決問題?請(qǐng)說明原因。
?? ?將多個(gè)消費(fèi)者加入到同一個(gè)消費(fèi)者組進(jìn)行消費(fèi),但是要注意消費(fèi)者數(shù)量不能大于分區(qū)數(shù)數(shù)量。

Q8: 請(qǐng)問多副本,例如一個(gè)分區(qū)3個(gè)副本,kafka會(huì)存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)嗎?請(qǐng)說明原因。
?? ?會(huì),還是ISR的存在。

相關(guān)術(shù)語:
?? ?Log End Offset (簡稱"LEO"):
?? ??? ?每個(gè)partition的最后一個(gè)日志的偏移量。
?? ??? ?
?? ?High Water(簡稱"HW"):
?? ??? ?所有ISR列表中最小的LEO。
?? ??? ?所有的消費(fèi)者只能讀取到HW之前的偏移量數(shù)據(jù)。
?? ??? ?
?? ?ISR:
?? ??? ?和leader數(shù)據(jù)同步的所有副本集合。
?? ??? ?
?? ?OSR:
?? ??? ?和leader數(shù)據(jù)不同的所有副本集合。

?? ?AR:
?? ??? ?是ISR+OSR,指的是所有副本集合。

?? ?replica.lag.time.max.ms: 30000ms ?---> 30s
?? ??? ?當(dāng)follower節(jié)點(diǎn)超過30秒沒有向leader發(fā)送fetch請(qǐng)求或者follower的LEO不等于leader的LEO時(shí),leader會(huì)將follower踢出ISR列表。
?? ??? ?
?? ??? ?


zookeeper的基礎(chǔ)操作:
?? ?1.簡介
zookeeper是一個(gè)分布式協(xié)調(diào)服務(wù),其扮演的是輔助的功能。本身并不支持存儲(chǔ)大量數(shù)據(jù),每個(gè)znode默認(rèn)可以存儲(chǔ)大約2M的數(shù)據(jù)。

?? ?2.什么是znode
所謂的znode指的是zookeeper node,相當(dāng)于Linux的目錄,只不過znode下不僅僅可以存儲(chǔ)子znode,其本身也能夠存數(shù)據(jù)。

?? ?3.znode的基礎(chǔ)管理
登錄:
# zkCli.sh?
增:
?? ?create /test
?? ??? ?創(chuàng)建一個(gè)"/test"的znode。
?? ?
?? ?create /test/b
?? ??? ?支持多級(jí)路徑創(chuàng)建,但要求父路徑是必須存在的。
?? ??? ?
?? ?

刪:
?? ?delete /test/a?
?? ??? ?刪除"/test/a"的znode,要求znode為空。
?? ??? ?
?? ?deleteall /test?
?? ??? ?刪除"/test"的所有內(nèi)容,可以刪除非空znode。

改:
?? ?set /test/c/1111 bbbbbbbbbb
?? ??? ?修改"/test/c/1111"的znode存儲(chǔ)數(shù)據(jù)。
?? ??? ?
?? ?
查: ? ? ? ? ? ?*****
?? ?ls /
?? ??? ?查看/的znode下有哪些子znode。
?? ?
?? ?ls /test -R
?? ??? ?遞歸查看"/test"子路徑下的所有znode。
?? ??? ?
?? ?get /test
?? ??? ?查看數(shù)據(jù)。
?? ??? ?
?? ??? ?
?? ??? ?
kafka 0.8.0 多實(shí)例部署:
?? ?1.解壓軟包包
tar xf kafka_2.8.0-0.8.0.tar.gz ?-C /oldboyedu/softwares/
?
?? ?2.修改配置文件
vim /oldboyedu/softwares/kafka_2.8.0-0.8.0/config/server.properties
...
broker.id=101
# kafka的監(jiān)聽端口
port=19092
log.dirs=/oldboyedu/data/kafka080
zookeeper.connect=10.0.0.101:2181/oldboyedu-linux82-kafka080

?? ?3.101節(jié)點(diǎn)同步數(shù)據(jù)
data_rsync.sh /oldboyedu/softwares/kafka_2.8.0-0.8.0/?? ?
?? ?
?? ?4.102節(jié)點(diǎn)修改broker.id
vim /oldboyedu/softwares/kafka_2.8.0-0.8.0/config/server.properties
...
broker.id=102
?
?? ?5.103節(jié)點(diǎn)修改broker.id
vim /oldboyedu/softwares/kafka_2.8.0-0.8.0/config/server.properties
...
broker.id=102

?? ?6.zookeeper創(chuàng)建znode
create /oldboyedu-linux82-kafka080

?? ?
?? ?7.啟動(dòng)kafka
cd /oldboyedu/softwares/kafka_2.8.0-0.8.0 ?&& ./bin/kafka-server-start.sh config/server.properties &>/dev/null &


?? ?8.檢查zookeeper集群的ids信息
ls /oldboyedu-linux82-kafka080/brokers/ids


早期kafka 0.9之前的offset存儲(chǔ)在zookeeper:
?? ?1.查看topic信息
./bin/kafka-list-topic.sh --zookeeper 10.0.0.101:2181/oldboyedu-linux82-kafka080
?? ??? ?
?? ?2.啟動(dòng)生產(chǎn)者
./bin/kafka-console-producer.sh ?--broker-list 10.0.0.101:19092,10.0.0.102:19092,10.0.0.103:19092 --topic oldboyedu-linux82

?? ?3.啟動(dòng)消費(fèi)者
./bin/kafka-console-consumer.sh --zookeeper 10.0.0.101:2181/oldboyedu-linux82-kafka080 --topic oldboyedu-linux82


?? ?4.查看偏移量,注意"console-consumer-78441"根據(jù)您的環(huán)境適當(dāng)改變即可
get /oldboyedu-linux82-kafka080/consumers/console-consumer-78441/offsets/oldboyedu-linux82/0

從kafka 0.9之后的版本之后支持將offset存儲(chǔ)在kafka的"__consumer_offsets"內(nèi)置topic中:
?? ?1.查看kafka內(nèi)置"__consumer_offsets"的方式
kafka-console-consumer.sh --bootstrap-server 10.0.0.101:9092 ?--topic __consumer_offsets ?--formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --from-beginning ?| grep oldboyedu-linux82

....

# [消費(fèi)者組,消費(fèi)的topic,分區(qū)數(shù)]::OffsetAndMetadata(偏移量,...)
[linux82-elk,oldboyedu-linux82,4]::OffsetAndMetadata(offset=5, leaderEpoch=Optional[0], metadata=, commitTimestamp=1661498621467, expireTimestamp=None)
[linux82-elk,oldboyedu-linux82,1]::OffsetAndMetadata(offset=4, leaderEpoch=Optional[0], metadata=, commitTimestamp=1661498621467, expireTimestamp=None)
[linux82-elk,oldboyedu-linux82,2]::OffsetAndMetadata(offset=3, leaderEpoch=Optional[0], metadata=, commitTimestamp=1661498621467, expireTimestamp=None)
[linux82-elk,oldboyedu-linux82,0]::OffsetAndMetadata(offset=4, leaderEpoch=Optional[0], metadata=, commitTimestamp=1661498621467, expireTimestamp=None)
[linux82-elk,oldboyedu-linux82,3]::OffsetAndMetadata(offset=3, leaderEpoch=Optional[0], metadata=, commitTimestamp=1661498621467, expireTimestamp=None)


?? ?2.查看消費(fèi)者組信息,注意觀察"linux82-elk"的消費(fèi)者組是否有消息延遲!
kafka-consumer-groups.sh --bootstrap-server 10.0.0.101:9092 ?--describe --all-groups
kafka-consumer-groups.sh --bootstrap-server 10.0.0.101:9092 ?--describe --group linux82-elk

...
GROUP ? ? ? ? ? TOPIC ? ? ? ? ? ? PARTITION ?CURRENT-OFFSET ?LOG-END-OFFSET ?LAG ? ? ? ? ? ? CONSUMER-ID ? ? HOST ? ? ? ? ? ?CLIENT-ID
linux82-elk ? ? oldboyedu-linux82 4 ? ? ? ? ?5 ? ? ? ? ? ? ? 6 ? ? ? ? ? ? ? 1 ? ? ? ? ? ? ? - ? ? ? ? ? ? ? - ? ? ? ? ? ? ? -
linux82-elk ? ? oldboyedu-linux82 1 ? ? ? ? ?4 ? ? ? ? ? ? ? 4 ? ? ? ? ? ? ? 0 ? ? ? ? ? ? ? - ? ? ? ? ? ? ? - ? ? ? ? ? ? ? -
linux82-elk ? ? oldboyedu-linux82 2 ? ? ? ? ?3 ? ? ? ? ? ? ? 4 ? ? ? ? ? ? ? 1 ? ? ? ? ? ? ? - ? ? ? ? ? ? ? - ? ? ? ? ? ? ? -
linux82-elk ? ? oldboyedu-linux82 0 ? ? ? ? ?4 ? ? ? ? ? ? ? 5 ? ? ? ? ? ? ? 1 ? ? ? ? ? ? ? - ? ? ? ? ? ? ? - ? ? ? ? ? ? ? -
linux82-elk ? ? oldboyedu-linux82 3 ? ? ? ? ?3 ? ? ? ? ? ? ? 5 ? ? ? ? ? ? ? 2 ? ? ? ? ? ? ? - ? ? ? ? ? ? ? - ? ? ? ? ? ? ? -

?? ?3.修改配置文件
vim /oldboyedu/softwares/kafka_2.13-3.2.1/config/consumer.properties?
...
group.id=linux82-elk
?
?? ?
?? ?4.基于配置文件啟動(dòng)消費(fèi)者
kafka-console-consumer.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --topic oldboyedu-linux82 --from-beginning --consumer.config /oldboyedu/softwares/kafka_2.13-3.2.1/config/consumer.properties


?? ?5.再次查看消費(fèi)者信息
kafka-consumer-groups.sh --bootstrap-server 10.0.0.101:9092 ?--describe --group linux82-elk


kafka生產(chǎn)環(huán)境應(yīng)該監(jiān)控哪些指標(biāo):
?? ?(1)監(jiān)控kafka的程序是否正常運(yùn)行;
?? ?(2)數(shù)據(jù)是否有延遲;
?? ?(3)是否頻繁涉及到ISR列表的變化;
?? ?(4)iops;
?? ?(5)其他參數(shù)可參考<<kafka權(quán)威指南>>;

安裝開源工具監(jiān)控kafka集群:
?? ?1.安裝MySQL數(shù)據(jù)庫并授權(quán)
?? ??? ?1.1 部署mariadb
yum -y install mariadb-server
systemctl start mariadb

?? ??? ?1.2 修改配置文件
vim /etc/my.cnf
...
[mysqld]
# 跳過名稱解析。
skip-name-resolve


?? ??? ?1.3 重啟服務(wù)并測試鏈接
systemctl restart mariadb
mysql -u linux82 -poldboyedu -h 10.0.0.103

?? ??? ?1.4 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE oldboyedu_linux82 DEFAULT CHARACTER SET utf8mb4;
?? ??? ?
?? ??? ?1.5 授權(quán)
CREATE USER linux82 IDENTIFIED BY 'oldboyedu';
GRANT ALL ON oldboyedu_linux82.* TO linux82;
SHOW GRANTS FOR linux82;

?? ??? ?
?? ??? ?
?? ?2.修改kafka開啟JMX
?? ??? ?2.1 修改啟動(dòng)腳本
vim /oldboyedu/softwares/kafka_2.13-3.2.1/bin/kafka-server-start.sh

...
# 大概在30行左右
?? ?export KAFKA_HEAP_OPTS="-Xmx256m -Xms256m"
? ? export JMX_PORT="8888"

?? ??? ?2.2 同步啟動(dòng)腳本到其他節(jié)點(diǎn)
data_rsync.sh /oldboyedu/softwares/kafka_2.13-3.2.1/bin/kafka-server-start.sh

?? ??? ?2.3 所有重啟kafka服務(wù)
kafka-server-stop.sh?
kafka-server-start.sh $KAFKA_HOME/config/server.properties &>/dev/null &
?? ?
?? ?

?? ?3.啟動(dòng)zookeeper的JMX端口
?? ??? ?3.1 修改啟動(dòng)腳本
vim /oldboyedu/softwares/apache-zookeeper-3.8.0-bin/bin/zkServer.sh +77
...
# 大概是在77行左右
ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"

?? ?
?? ??? ?3.2 重啟zookeeper服務(wù)
zkServer.sh restart


?? ?4.安裝kafka eagle監(jiān)控工具
?? ??? ?4.1 解壓軟件包
unzip kafka-eagle-bin-2.0.8.zip
tar xf efak-web-2.0.8-bin.tar.gz ?-C /oldboyedu/softwares/

?? ??? ?4.2 修改kafka eagle啟動(dòng)腳本的堆內(nèi)存大小
vim ?/oldboyedu/softwares/efak-web-2.0.8/bin/ke.sh?
...
export KE_JAVA_OPTS="-server -Xmx256m -Xms256m -XX:MaxGCPauseMillis=20 -XX:+UseG1GC -XX:MetaspaceSize=128m -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"

?? ??? ?4.3 修改配置文件?
cat > /oldboyedu/softwares/efak-web-2.0.8/conf/system-config.properties <<EOF
efak.zk.cluster.alias=linux82,cluster2
linux82.zk.list=10.0.0.101:2181/oldboyedu-linux82-kafka3.2.1
cluster2.zk.list=10.0.0.101:2181/oldboyedu-linux82-kafka080
linux82.efak.broker.size=20
kafka.zk.limit.size=32
efak.webui.port=8048
linux82.efak.offset.storage=kafka
cluster2.efak.offset.storage=zk
linux82.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi
efak.metrics.charts=true
efak.metrics.retain=15
efak.sql.topic.records.max=5000
efak.sql.topic.preview.records.max=10
efak.topic.token=keadmin
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://10.0.0.103:3306/oldboyedu_linux82?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=linux82
efak.password=oldboyedu
EOF

?? ??? ?4.4 配置環(huán)境變量
cat > /etc/profile.d/kafka_eagle.sh <<EOF
#!/bin/bash

export KE_HOME=/oldboyedu/softwares/efak-web-2.0.8
export PATH=$PATH:$KE_HOME/bin
EOF


?? ??? ?4.5 啟動(dòng)kafka eagle服務(wù),第一次需要等一會(huì),可能有點(diǎn)漫長哈!大概30s~1分鐘左右
ke.sh start


kafka集群壓力測試:
?? ?1.簡介?
所謂壓力測試就是對(duì)一個(gè)集群的處理能力的上限做一個(gè)評(píng)估。為將來集群擴(kuò)容提供有效的依據(jù)。
?? ?
?? ?2.為什么要進(jìn)行壓力測試
(1)壓力測試可以了解當(dāng)前集群的處理能力上限;
(2)當(dāng)修改集群的配置參數(shù)后,壓力測試可以協(xié)助運(yùn)維人員去參考本次調(diào)優(yōu)的效果;
(3)壓力測試的結(jié)果以后可以作為參考擴(kuò)容集群的有效依據(jù);
?? ?
?? ?3.實(shí)戰(zhàn)案例
install -d /tmp/kafka-test/
cat > oldboyedu-kafka-test.sh <<'EOF'
# 創(chuàng)建topic
kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --topic oldboyedu-kafka-2022 --replication-factor 1 --partitions 10 --create

# 啟動(dòng)消費(fèi)者消費(fèi)數(shù)據(jù)
nohup kafka-consumer-perf-test.sh --broker-list 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --topic ?oldboyedu-kafka-2022 --messages 100000000 &>/tmp/kafka-test/oldboyedu-kafka-consumer.log &

# 啟動(dòng)生產(chǎn)者寫入數(shù)據(jù)
nohup kafka-producer-perf-test.sh --num-records 100000000 --record-size 1000 --topic ?oldboyedu-kafka-2022 --throughput 1000000 --producer-props bootstrap.servers=10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 &> /tmp/kafka-test/oldboyedu-kafka-producer.log &
EOF
bash oldboyedu-kafka-test.sh?


參數(shù)說明:
kafka-consumer-perf-test.sh?
?? ?---messages:
? ? ?? ?指定消費(fèi)消息的數(shù)量。
?? ?--broker-list:
? ? ?? ?指定broker列表。
? ? --topic:
? ? ?? ?指定topic主體。
? ? ?? ?
kafka-producer-perf-test.sh?
? ? -num-records
? ? ? ? 生產(chǎn)消息的數(shù)量。
? ? --record-size:
? ? ? ? 每條消息的大小,單位是字節(jié)。
? ? --topic:
? ? ?? ?指定topic主體。
?? ?--throughput?
?? ??? ?設(shè)置每秒發(fā)送的消息數(shù)量,即指定最大消息的吞吐量,若設(shè)置為-1代表不限制!
?? ?--producer-props bootstrap.servers
?? ??? ?指定broker列表。
?? ??? ?
?? ??? ?
溫馨提示:
?? ?本案例測試大約會(huì)生成93GB( echo ?"100000000 * 1000/1024/1024/1024" | bc)的數(shù)據(jù),如果硬盤資源不足的小伙伴可以暫時(shí)不用測試了,或者該小上面提到的參數(shù)。

今日內(nèi)容回顧:
?? ?- kafka的ISR工作機(jī)制原理 ? *****
?? ?- ZK的znode基礎(chǔ)操作 ?***
?? ?- kafka多實(shí)例部署
?? ?- kafka eagle監(jiān)控工具
?? ?- kafka集群壓力測試 ?***

下次課程:
?? ?- kafka優(yōu)化
?? ?- kafka配合elk使用案例
? ? - zk的ACL
?? ?- zk的監(jiān)控工具
?? ?- zk調(diào)優(yōu)
?? ?- ES8集群環(huán)境搭建文章來源地址http://www.zghlxwxcb.cn/news/detail-691046.html

到了這里,關(guān)于kafka的ISR工作機(jī)制原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kafka的Replication策略和ISR同步機(jī)制

    目錄 replication replication復(fù)制機(jī)制 同步復(fù)制 異步復(fù)制 ISR

    2024年02月13日
    瀏覽(19)
  • Kafka 的 replica 同步機(jī)制(ISR與OSR列表數(shù)據(jù)相互轉(zhuǎn)換)

    Kafka 的 replica 同步機(jī)制(ISR與OSR列表數(shù)據(jù)相互轉(zhuǎn)換)

    注:ISR與OSR列表數(shù)據(jù)是存儲(chǔ)在Zookeeper的Partition中的(一個(gè)Topic可能會(huì)配置多個(gè)partition)。 一、Kafka副本 Kafka中主題的每個(gè)Partition有一個(gè)預(yù)寫式日志文件,每個(gè)Partition都由一系列有序的、不可變的消息組成,這些消息被連續(xù)的追加到Partition中,Partition中的每個(gè)消息都有一個(gè)連續(xù)

    2024年04月28日
    瀏覽(19)
  • Kafka 入門到起飛 - 生產(chǎn)者參數(shù)詳解 ,什么是生產(chǎn)者確認(rèn)機(jī)制? 什么是ISR? 什么是 OSR?

    上回書我們講了,生產(chǎn)者發(fā)送消息流程解析傳送門 那么這篇我們來看下,生產(chǎn)者發(fā)送消息時(shí)幾個(gè)重要的參數(shù)詳解 ,什么是生產(chǎn)者確認(rèn)機(jī)制? 什么是ISR? 什么是 OSR? bootstrap.servers : Kafka 集群地址 host1:port1,host2:port2,host3:port3 不需要寫Kafka集群中全部的broker地址,但是也不要寫

    2024年02月15日
    瀏覽(27)
  • kafka之集群工作機(jī)制理解

    kafka之集群工作機(jī)制理解

    ? ? ? ? 回想一下,我們搭建kafka集群是如何搭建?修改kafka得配置文件,多個(gè)Kafka服務(wù)注冊(cè)到同一個(gè)zookeeper集群上的節(jié)點(diǎn),會(huì)自動(dòng)組成集群。 ? ? ? ? 學(xué)習(xí)服務(wù)端原理,通常我們是去讀服務(wù)端的那些抽象的代碼,但是Kafka為了保證高吞吐,高性能,高可擴(kuò)展的三高架構(gòu),很多

    2024年01月19日
    瀏覽(16)
  • kafka--kafka基礎(chǔ)概念-ISR詳解

    kafka--kafka基礎(chǔ)概念-ISR詳解

    主要是講 主 往 從同步中的問題 當(dāng)綠色P1接收到寫入的數(shù)據(jù),要同步到紫色的P1S1和P1S2 如何保證一致性呢? 使用In Sync Replicas 也就是ISR概念 為什么不一致的? 因?yàn)镻1S1同步數(shù)據(jù) 可能花費(fèi) 50ms P1S2可能花費(fèi)60ms 同步完的進(jìn)入ISR集合, 同步時(shí)間是可以設(shè)置規(guī)定時(shí)間的(容忍時(shí)間)

    2024年02月12日
    瀏覽(18)
  • 區(qū)塊鏈工作原理,工作機(jī)制和詳細(xì)概念

    ?各位小伙伴想要博客相關(guān)資料的話,關(guān)注公眾號(hào):chuanyeTry即可領(lǐng)取相關(guān)資料! 工作原理 ????????區(qū)塊鏈?zhǔn)且环N去中心化的分布式賬本技術(shù),它的工作原理可以簡單概括為以下幾個(gè)步驟: ????????1. 交易:區(qū)塊鏈中的交易可以是任何數(shù)字化的價(jià)值交換,例如加密貨幣

    2024年02月09日
    瀏覽(28)
  • Kafka之分區(qū)副本與ISR

    Kafka之分區(qū)副本與ISR

    Kafka的Topic分區(qū)本質(zhì)是一個(gè)用于存儲(chǔ)Topic下的消息的日志,但是只存一份日志會(huì)因?yàn)闄C(jī)器損壞或其他原因?qū)е孪G失不可恢復(fù), 因此需要多個(gè)相同的日志作為備份,提高系統(tǒng)可用性,這些備份在kafka中被稱為副本(replica)。 kafka將分區(qū)的所有副本均勻的分配到所有broker上,并從

    2024年02月04日
    瀏覽(22)
  • 詳解Kafka分區(qū)機(jī)制原理|Kafka 系列 二

    詳解Kafka分區(qū)機(jī)制原理|Kafka 系列 二

    Kafka 系列第二篇,詳解分區(qū)機(jī)制原理。為了不錯(cuò)過更新,請(qǐng)大家將本號(hào)“ 設(shè)為星標(biāo) ”。 點(diǎn)擊上方“后端開發(fā)技術(shù)”,選擇“設(shè)為星標(biāo)” ,優(yōu)質(zhì)資源及時(shí)送達(dá) 上一篇文章介紹了 Kafka 的基本概念和術(shù)語,里面有個(gè)概念是 分區(qū)(Partition)。 kafka 將 一個(gè)Topic 中的消息分成多份,分

    2024年02月14日
    瀏覽(12)
  • Kafka系列(一)【消息隊(duì)列、Kafka的基本概念、Kafka的工作機(jī)制、Kafka可滿足的需求、Kafka的特性、Kafka的應(yīng)用場景】

    Kafka系列(一)【消息隊(duì)列、Kafka的基本概念、Kafka的工作機(jī)制、Kafka可滿足的需求、Kafka的特性、Kafka的應(yīng)用場景】

    轉(zhuǎn)自《Kafka并不難學(xué)!入門、進(jìn)階、商業(yè)實(shí)戰(zhàn)》 1. 消息隊(duì)列的來源 在高并發(fā)的應(yīng)用場景中, 由于來不及同步處理請(qǐng)求,接收到的請(qǐng)求往往會(huì)發(fā)生阻塞。 例如,大量的插入、更新請(qǐng)求同時(shí)到達(dá)數(shù)據(jù)庫,這會(huì)導(dǎo)致行或表被鎖住,最后會(huì)因?yàn)檎?qǐng)求堆積過多而觸發(fā)“連接數(shù)過多的異

    2024年02月20日
    瀏覽(26)
  • Kafka事務(wù)機(jī)制:原理和實(shí)踐

    Kafka事務(wù)機(jī)制:原理和實(shí)踐

    Apache Kafka 是一個(gè)分布式流處理平臺(tái),廣泛用于構(gòu)建實(shí)時(shí)數(shù)據(jù)管道和流應(yīng)用程序。它不僅以高吞吐量、可擴(kuò)展性和容錯(cuò)能力著稱,還提供了事務(wù)支持,以確保數(shù)據(jù)的完整性和一致性。在這篇博客中,我們將深入探討 Kafka 的事務(wù)機(jī)制,了解其原理,并通過一個(gè)實(shí)際的例子來說明

    2024年02月03日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包