欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:分布式 kafka系列(二)

柚子快報(bào)邀請(qǐng)碼778899分享:分布式 kafka系列(二)

http://yzkb.51969.com/

本章承接kafka一內(nèi)容,文章在本人博客主頁(yè)都有,可以自行點(diǎn)擊瀏覽。

冪等性

請(qǐng)求執(zhí)行多次,但執(zhí)行的結(jié)果是一致的。

如果,某個(gè)系統(tǒng)是不具備冪等性的,如果用戶重復(fù)提交了某個(gè)表格,就可能會(huì)造成不良影響。例如:用戶在瀏覽器上點(diǎn)擊了多次提交訂單按鈕,會(huì)在后臺(tái)生成多個(gè)一模一樣的訂單。

kafka冪等性

在生產(chǎn)者生產(chǎn)消息時(shí),如果出現(xiàn)retry時(shí),有可能會(huì)一條消息被發(fā)送了多次,如果Kafka不具備冪等性的,就有可能會(huì)在partition中保存多條一模一樣的消息。

配置

props.put("enable.idempotence",true);

原理

為了實(shí)現(xiàn)生產(chǎn)者的冪等性,Kafka引入了 Producer ID(PID)和 Sequence Number的概念。

?PID:每個(gè)Producer在初始化時(shí),都會(huì)分配一個(gè)唯一的PID,這個(gè)PID對(duì)用戶來(lái)說(shuō),是透明的。

?Sequence Number:針對(duì)每個(gè)生產(chǎn)者(對(duì)應(yīng)PID)發(fā)送到指定主題分區(qū)的消息都對(duì)應(yīng)一個(gè)從0開(kāi)始遞增的Sequence Number。

如果同一個(gè)生產(chǎn)者,發(fā)送的消息序列號(hào)一致了,那么消息就已經(jīng)存在了。

消費(fèi)者組Rebalance機(jī)制

Rebalance再均衡

Kafka中的Rebalance稱之為再均衡,是Kafka中確保Consumer group下所有的consumer如何達(dá)成一致,分配訂閱的topic的每個(gè)分區(qū)的機(jī)制。

Rebalance觸發(fā)的時(shí)機(jī)有:

消費(fèi)者組中consumer的個(gè)數(shù)發(fā)生變化。例如:有新的consumer加入到消費(fèi)者組,或者是某個(gè)consumer停止了。訂閱的topic個(gè)數(shù)發(fā)生變化。消費(fèi)者可以訂閱多個(gè)主題,假設(shè)當(dāng)前的消費(fèi)者組訂閱了三個(gè)主題,但有一個(gè)主題突然被刪除了,此時(shí)也需要發(fā)生再均衡。訂閱的topic分區(qū)數(shù)發(fā)生變化

壞處

發(fā)生Rebalance時(shí),consumer group下的所有consumer都會(huì)協(xié)調(diào)在一起共同參與,Kafka使用分配策略盡可能達(dá)到最公平的分配Rebalance過(guò)程會(huì)對(duì)consumer group產(chǎn)生非常嚴(yán)重的影響,Rebalance的過(guò)程中所有的消費(fèi)者都將停止工作,直到Rebalance完成

消費(fèi)者分區(qū)分配策略

range范圍分配

Range范圍分配策略是Kafka默認(rèn)的分配策略,它可以確保每個(gè)消費(fèi)者消費(fèi)的分區(qū)數(shù)量是均衡的。

注意:Rangle范圍分配策略是針對(duì)每個(gè)Topic的。

輪詢分配

RoundRobinAssignor輪詢策略是將消費(fèi)組內(nèi)所有消費(fèi)者以及消費(fèi)者所訂閱的所有topic的partition按照字典序排序(topic和分區(qū)的hashcode進(jìn)行排序),然后通過(guò)輪詢方式逐個(gè)將分區(qū)以此分配給每個(gè)消費(fèi)者。

粘性分配

沒(méi)有重新分配的時(shí)候和輪詢一樣,當(dāng)消費(fèi)者掛掉的時(shí)候,發(fā)生重新分配,盡可能保留之前的分配不變,將掛點(diǎn)的消費(fèi)者上綁定的分區(qū)平均分配到?jīng)]掛掉的消費(fèi)者上面。由于rebalance發(fā)生,導(dǎo)致消費(fèi)者需要重新消費(fèi)之前正在處理的分區(qū),導(dǎo)致不必要的系統(tǒng)開(kāi)銷。(例如:某個(gè)事務(wù)正在進(jìn)行就必須要取消了)

副本機(jī)制

副本的目的就是冗余備份,當(dāng)某個(gè)Broker上的分區(qū)數(shù)據(jù)丟失時(shí),依然可以保障數(shù)據(jù)可用。因?yàn)樵谄渌腂roker上的副本是可用的。

producer的ACKs參數(shù)

對(duì)副本關(guān)系較大的就是,producer配置的acks參數(shù)了,acks參數(shù)表示當(dāng)生產(chǎn)者生產(chǎn)消息的時(shí)候,寫(xiě)入到副本的要求嚴(yán)格程度。它決定了生產(chǎn)者如何在性能和可靠性之間做取舍。

確認(rèn)機(jī)制說(shuō)明acks=0生產(chǎn)者在成功寫(xiě)入消息之前不會(huì)等待任何來(lái)自服務(wù)器的響應(yīng),消息有丟失的風(fēng)險(xiǎn),但是速度最快acks=1(默認(rèn)值)只要集群首領(lǐng)節(jié)點(diǎn)收到消息,生產(chǎn)者就會(huì)收到一個(gè)來(lái)自服務(wù)器的成功響應(yīng)acks=all只有當(dāng)所有參與賦值的節(jié)點(diǎn)全部收到消息時(shí),生產(chǎn)者才會(huì)收到一個(gè)來(lái)自服務(wù)器的成功響應(yīng)

Kafka的數(shù)據(jù)存儲(chǔ)形式

?一個(gè)topic由多個(gè)分區(qū)組成?一個(gè)分區(qū)(partition)由多個(gè)segment(段)組成?一個(gè)segment(段)由多個(gè)文件組成(log、index、timeindex)

???????Kafka配額限速機(jī)制(Quotas)

生產(chǎn)者和消費(fèi)者以極高的速度生產(chǎn)/消費(fèi)大量數(shù)據(jù)或產(chǎn)生請(qǐng)求,從而占用broker上的全部資源,造成網(wǎng)絡(luò)IO飽和。有了配額(Quotas)就可以避免這些問(wèn)題。Kafka支持配額管理,從而可以對(duì)Producer和Consumer的produce&fetch操作進(jìn)行流量限制,防止個(gè)別業(yè)務(wù)壓爆服務(wù)器。

???????限制producer端速率

為所有client id設(shè)置默認(rèn)值,以下為所有producer程序設(shè)置其TPS不超過(guò)1MB/s,即1048576?/s,命令如下:

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --add-config 'producer_byte_rate=1048576'?--entity-type clients --entity-default

運(yùn)行基準(zhǔn)測(cè)試,觀察生產(chǎn)消息的速率

bin/kafka-producer-perf-test.sh --topic test?--num-records 500000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 acks=1

結(jié)果:

50000 records sent, 1108.156028 records/sec (1.06 MB/sec)

???????限制consumer端速率

對(duì)consumer限速與producer類似,只不過(guò)參數(shù)名不一樣。

為指定的topic進(jìn)行限速,以下為所有consumer程序設(shè)置topic速率不超過(guò)1MB/s,即1048576/s。命令如下:

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --add-config 'consumer_byte_rate=1048576' --entity-type clients --entity-default

運(yùn)行基準(zhǔn)測(cè)試:

bin/kafka-consumer-perf-test.sh --broker-list node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 --topic test?--fetch-size 1048576 --messages 500000

結(jié)果為:

MB.sec:1.0743

???????取消Kafka的Quota配置

使用以下命令,刪除Kafka的Quota配置

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --delete-config 'producer_byte_rate'?--entity-type clients --entity-default bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --delete-config 'consumer_byte_rate'?--entity-type clients --entity-default

柚子快報(bào)邀請(qǐng)碼778899分享:分布式 kafka系列(二)

http://yzkb.51969.com/

精彩內(nèi)容

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19320267.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄