欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

問題

在使用kafka自帶腳本消費時,想用grep關鍵詞過濾出來想要的信息

./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命令在這里有問題,無法取到想要消息


在這里插入圖片描述

已經消費到latest了,都沒有提取到想要的msg

這里確認了producer端已經發(fā)送成功了,回調函數(shù)里都沒有任何異常

懷疑

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

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

并且在存儲消息的日志文件中也已經查詢到了我想要的消息了,為什么就是消費不出來呢

分析

將kafka的這個主題 --from-beginning 消費到文件topic.log中去

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

kafka消費時結果是動態(tài)的,grep這里用法不對,只有對靜態(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

上面的意思是

  • 強制輸出結果使用行緩沖
  • 默認情況下,如果標準輸入時終端,則使用line bufferred
  • 否則,使用塊緩沖,(默認的大小為4096 bytes,因系統(tǒng)和配置而異)

所以,這也就解釋了為什么雙重grep過濾沒有內容,因為沒有達到塊緩沖限制。

驗證

生產消息

a,b,c

在這里插入圖片描述

消費時兩次grep則無消息

在這里插入圖片描述

消費時一次grep則都出來

在這里插入圖片描述

結論

  • 剛剛/kafka-console-consumer.sh第一次grep過濾出來的的消息小于4k了,所以傳給第二次grep是不可以直接輸出出來的,因為在緩沖區(qū)
  • 如果第一次grep出來的數(shù)據(jù)大于4k,傳給第二個grep時則不會緩沖著,第二個grep收到就立刻傳入到terminal輸出了
  • 反之第一次grep過濾出來的的消息大于還是小于4k,一旦后面沒有管道符號,直接輸出給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.dbjr.com.cn/article/277299.htm

最后

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中的鎖ReentrantLock詳解

    Java中的鎖ReentrantLock詳解

    這篇文章主要介紹了Java中的鎖ReentrantLock詳解,ReentantLock是java中重入鎖的實現(xiàn),一次只能有一個線程來持有鎖,包含三個內部類,Sync、NonFairSync、FairSync,需要的朋友可以參考下
    2023-09-09
  • SpringMVC解析JSON請求數(shù)據(jù)問題解析

    SpringMVC解析JSON請求數(shù)據(jù)問題解析

    這篇文章主要介紹了SpringMVC解析JSON請求數(shù)據(jù)問題解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳解servlet的url-pattern匹配規(guī)則

    詳解servlet的url-pattern匹配規(guī)則

    本篇文章主要介紹了=servlet的url-pattern匹配規(guī)則,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • SpringBoot 設置傳入參數(shù)非必要的操作

    SpringBoot 設置傳入參數(shù)非必要的操作

    這篇文章主要介紹了SpringBoot 設置傳入參數(shù)非必要的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 關于jpa?querydsl嵌套查詢demo

    關于jpa?querydsl嵌套查詢demo

    這篇文章主要介紹了關于jpa?querydsl?嵌套查詢demo,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Elasticsearch查詢及聚合類DSL語句寶典示例詳解

    Elasticsearch查詢及聚合類DSL語句寶典示例詳解

    這篇文章主要為大家介紹了Elasticsearch查詢及聚合類DSL語句寶典示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • SpringBoot工程啟動順序與自定義監(jiān)聽超詳細講解

    SpringBoot工程啟動順序與自定義監(jiān)聽超詳細講解

    這篇文章主要介紹了SpringBoot工程啟動順序與自定義監(jiān)聽,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • java開源調度如何給xxljob加k8s執(zhí)行器

    java開源調度如何給xxljob加k8s執(zhí)行器

    這篇文章主要介紹了java開源調度如何給xxljob加一個k8s執(zhí)行器,?xxljob?在設計上,抽象出了執(zhí)行器的接口,所以實現(xiàn)一個語言的執(zhí)行器并不復雜,這里主要探索下,如何利用k8s的pod?的能力,使用?xxljob?調度?pod?運行,實現(xiàn)一個通用的和語言無關的執(zhí)行器
    2022-02-02
  • Java實現(xiàn)石頭剪刀布游戲

    Java實現(xiàn)石頭剪刀布游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)石頭剪刀布游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 淺談Java代理(jdk靜態(tài)代理、動態(tài)代理和cglib動態(tài)代理)

    淺談Java代理(jdk靜態(tài)代理、動態(tài)代理和cglib動態(tài)代理)

    下面小編就為大家?guī)硪黄獪\談Java代理(jdk靜態(tài)代理、動態(tài)代理和cglib動態(tài)代理)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01

最新評論