最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

kafka-console-consumer.sh使用2次grep管道無(wú)法提取消息的解決

 更新時(shí)間:2023年03月07日 09:57:40   作者:Geoffrey Turing  
這篇文章主要介紹了kafka-console-consumer.sh使用2次grep管道無(wú)法提取消息的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問(wèn)題

在使用kafka自帶腳本消費(fèi)時(shí),想用grep關(guān)鍵詞過(guò)濾出來(lái)想要的信息

./kafka-console-consumer.sh \
--bootstrap-server node1:9092,node2:9092,node3:9092 \
--topic test \
--from-beginning \
--consumer-property group.id=gaofeng_test\
 | grep  "b786aba6f3a6" | grep 388aabd

但是發(fā)現(xiàn)grep命令在這里有問(wèn)題,無(wú)法取到想要消息


在這里插入圖片描述

已經(jīng)消費(fèi)到latest了,都沒(méi)有提取到想要的msg

這里確認(rèn)了producer端已經(jīng)發(fā)送成功了,回調(diào)函數(shù)里都沒(méi)有任何異常

懷疑

懷疑是否kafka存在丟數(shù)據(jù)的情況

排查問(wèn)題后發(fā)現(xiàn)kafka集群一切正常,性能也很強(qiáng)勁

并且在存儲(chǔ)消息的日志文件中也已經(jīng)查詢到了我想要的消息了,為什么就是消費(fèi)不出來(lái)呢

分析

將kafka的這個(gè)主題 --from-beginning 消費(fèi)到文件topic.log中去

對(duì)topic.log這個(gè)靜態(tài)文件進(jìn)行g(shù)rep “b786aba6f3a6” | grep 388aabd抽取,發(fā)現(xiàn)取到了自己想要的這條消息

kafka消費(fèi)時(shí)結(jié)果是動(dòng)態(tài)的,grep這里用法不對(duì),只有對(duì)靜態(tài)的文件可以抽取到數(shù)據(jù)

--line-buffered
         Force output to be line buffered.  By default, output is line buffered when standard output is
         a terminal and block buffered otherwise

上面的意思是

  • 強(qiáng)制輸出結(jié)果使用行緩沖
  • 默認(rèn)情況下,如果標(biāo)準(zhǔn)輸入時(shí)終端,則使用line bufferred
  • 否則,使用塊緩沖,(默認(rèn)的大小為4096 bytes,因系統(tǒng)和配置而異)

所以,這也就解釋了為什么雙重grep過(guò)濾沒(méi)有內(nèi)容,因?yàn)闆](méi)有達(dá)到塊緩沖限制。

驗(yàn)證

生產(chǎn)消息

a,b,c

在這里插入圖片描述

消費(fèi)時(shí)兩次grep則無(wú)消息

在這里插入圖片描述

消費(fèi)時(shí)一次grep則都出來(lái)

在這里插入圖片描述

結(jié)論

  • 剛剛/kafka-console-consumer.sh第一次grep過(guò)濾出來(lái)的的消息小于4k了,所以傳給第二次grep是不可以直接輸出出來(lái)的,因?yàn)樵诰彌_區(qū)
  • 如果第一次grep出來(lái)的數(shù)據(jù)大于4k,傳給第二個(gè)grep時(shí)則不會(huì)緩沖著,第二個(gè)grep收到就立刻傳入到terminal輸出了
  • 反之第一次grep過(guò)濾出來(lái)的的消息大于還是小于4k,一旦后面沒(méi)有管道符號(hào),直接輸出給terminal的話,則遵循line bufferred規(guī)則立馬輸出

解決

使用如下命令即可

./kafka-console-consumer.sh \
--bootstrap-server node1:9092,node2:9092,node3:9092 \
--topic test \
--from-beginning \
--consumer-property group.id=gaofeng_test\
 | grep --line-buffered "b786aba6f3a6" | grep 388aabd

【注意】

這里用了grep 的 --line-buffered參數(shù)

具體用法

查閱http://www.fzitv.net/article/277299.htm

最后

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

教育| 宽城| 禹城市| 克山县| 甘南县| 保德县| 双辽市| 孙吴县| 青田县| 青冈县| 于田县| 白河县| 南涧| 博乐市| 静乐县| 岚皋县| 遂宁市| 昌图县| 德昌县| 永和县| 普宁市| 上蔡县| 垦利县| 乌海市| 璧山县| 化隆| 奉节县| 银川市| 加查县| 德清县| 房山区| 石台县| 镇原县| 江西省| 武山县| 开平市| 旬阳县| 凤山市| 泰和县| 屏山县| 平安县|