亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

kafka簡單的入門案例 kafka應(yīng)用實例( 三 )


多播消費
一條消息能被多個消費者消費的模式,類似publish-subscribe模式費,針對Kafka同一條消息只能被同一個消費組下的某一個消費者消費的特性,要實現(xiàn)多播只要保證這些消費者屬于不同的消費組即可 。我們再增加一個消費者,該消費者屬于testGroup-2消費組,結(jié)果兩個客戶端都能收到消息
bin/kafka-console-consumer.sh –bootstrap-server 192.168.65.60:9092 –consumer-property group.id=testGroup-2 –topic test
查看消費組名
bin/kafka-consumer-groups.sh –bootstrap-server 192.168.65.60:9092 –list
查看消費組的消費偏移量
bin/kafka-consumer-groups.sh –bootstrap-server 192.168.65.60:9092 –describe –group testGroup
current-offset:當(dāng)前消費組的已消費偏移量
log-end-offset:主題對應(yīng)分區(qū)消息的結(jié)束偏移量(HW)
lag:當(dāng)前消費組未消費的消息數(shù)
主題Topic和消息日志Log可以理解Topic是一個類別的名稱,同類消息發(fā)送到同一個Topic下面 。對于每一個Topic,下面可以有多個分區(qū)(Partition)日志文件:
Partition是一個有序的message序列,這些message按順序添加到一個叫做commit log的文件中 。每個partition中的消息都有一個唯一的編號,稱之為offset,用來唯一標(biāo)示某個分區(qū)中的message 。
每個partition,都對應(yīng)一個commit log文件 。一個partition中的message的offset都是唯一的,但是不同的partition中的message的offset可能是相同的 。
kafka一般不會刪除消息,不管這些消息有沒有被消費 。只會根據(jù)配置的日志保留時間(log.retention.hours)確認消息多久被刪除,默認保留最近一周的日志消息 。kafka的性能與保留的消息數(shù)據(jù)量大小沒有關(guān)系,因此保存大量的數(shù)據(jù)消息日志信息不會有什么影響 。
每個consumer是基于自己在commit log中的消費進度(offset)來進行工作的 。在kafka中,消費offset由consumer自己來維護;一般情況下我們按照順序逐條消費commit log中的消息,當(dāng)然我可以通過指定offset來重復(fù)消費某些消息,或者跳過某些消息 。
這意味kafka中的consumer對集群的影響是非常小的,添加一個或者減少一個consumer,對于集群或者其他consumer來說,都是沒有影響的,因為每個consumer維護各自的消費offset 。
創(chuàng)建多個分區(qū)的主題:
bin/kafka-topics.sh –create –zookeeper 192.168.65.60:2181 –replication-factor 1 –partitions 2 –topic test1
查看下topic的情況
bin/kafka-topics.sh –describe –zookeeper 192.168.65.60:2181 –topic test1
leader節(jié)點負責(zé)給定partition的所有讀寫請求 。replicas 表示某個partition在哪幾個broker上存在備份 。不管這個幾點是不是”leader“,甚至這個節(jié)點掛了,也會列出 。isr 是replicas的一個子集,它只列出當(dāng)前還存活著的,并且已同步備份了該partition的節(jié)點 。增加topic的分區(qū)數(shù)量(目前kafka不支持減少分區(qū)):
bin/kafka-topics.sh -alter –partitions 3 –zookeeper 192.168.65.60:2181 –topic test
可以這么來理解Topic,Partition和Broker
一個topic,代表邏輯上的一個業(yè)務(wù)數(shù)據(jù)集,比如按數(shù)據(jù)庫里不同表的數(shù)據(jù)操作消息區(qū)分放入不同topic,訂單相關(guān)操作消息放入訂單topic,用戶相關(guān)操作消息放入用戶topic,對于大型網(wǎng)站來說,后端數(shù)據(jù)都是海量的,訂單消息很可能是非常巨量的,比如有幾百個G甚至達到TB級別,如果把這么多數(shù)據(jù)都放在一臺機器上肯定會有容量限制問題,那么就可以在topic內(nèi)部劃分多個partition來分片存儲數(shù)據(jù),不同的partition可以位于不同的機器上,每臺機器上都運行一個Kafka的進程Broker 。
為什么要對Topic下數(shù)據(jù)進行分區(qū)存儲?
1、commit log文件會受到所在機器的文件系統(tǒng)大小的限制,分區(qū)之后可以將不同的分區(qū)放在不同的機器上,相當(dāng)于對數(shù)據(jù)做了分布式存儲,理論上一個topic可以處理任意數(shù)量的數(shù)據(jù) 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: