精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊不同版本 Kafka Producer 的分區(qū)策略

開發(fā) 前端
某微服務(wù),使用 log4j kafka appender 寫日志到 kafka 中。業(yè)務(wù)同學反饋,微服務(wù)日志中有頻繁出現(xiàn)類似如下的kafka連接斷開的日志,希望分析下kafka連接斷開的原因,并確認是否會因此丟失微服務(wù)日志。

1 問題現(xiàn)象

某微服務(wù),使用 log4j kafka appender 寫日志到 kafka 中。業(yè)務(wù)同學反饋,微服務(wù)日志中有頻繁出現(xiàn)類似如下的kafka連接斷開的日志,希望分析下kafka連接斷開的原因,并確認是否會因此丟失微服務(wù)日志。

2024-08-08 07:10:06.994 -INFO [kafka-producer-network-thread | producer-1] org.apache.kafka.clients. NetworkClient -[Producer clientId=producer-1] Node 2 disconnected.)

kafka連接斷開的具體日志如下圖所示:

圖片圖片

2 問題分析

  • 由于kafka集群有多個broker節(jié)點,kafka topic 也有多個分區(qū),所以微服務(wù)作為 kafka producer,在底層會建立對個 tcp 連接,以發(fā)送日志到各個 kafka topic partition。
  • 通過 awk 篩選微服務(wù)日志可見,微服務(wù)針對同一個 kafka broker的tcp 連接,并不會頻繁斷開,且斷開的時點,一般是在業(yè)務(wù)低峰期,打印日志不多的時候:

圖片圖片

  • 為進一步確認問題,在微服務(wù)節(jié)點上,可以查看下 TCP 連接的狀態(tài)(可以通過命令 netstat -apn -t|grep -i 9092 或 ss -antop |grep -i 9092),甚至通過 tcpdump 抓包分析下(可以通過命令nohup tcpdump tcp port 9092 -i any -s100 -B 8192 -p -n -w /tmp/9092.pcap  >> /tmp/9092.out 2>&1 &)。
  • 在生產(chǎn)環(huán)境中,使用上述命令,抓了近2個小時的包,并對 tcpdump 包文件進行了分析,如下圖可見,所有的tcp連接斷開,都是由微服務(wù)(即 kafka producer)主動斷開的,且具體來說,是微服務(wù)長達540秒,都不需要發(fā)送日志到某個具體的kafka topic partition時,因超時主動斷開的:

圖片圖片

image

圖片圖片

image

圖片圖片

3.問題原因

3.1 kafka 對空閑連接檢查和清理機制-producer 參數(shù)connections.max.idle.ms

為減輕對kafka broker 服務(wù)端的壓力,kafka producer 有空閑連接的檢查和清理機制:

  • 當某個tcp連接長時間idle時,kafka producer就會主動關(guān)閉該空閑連接,并打印日志org.apache.kafka.clients. NetworkClient -[Producer clientId=producer-1] Node 2 disconnected;
  • 判斷空閑連接的空閑閾值,就是參數(shù) connections.max.idle.ms,該參數(shù)默認 540000 即 9 分鐘,這也與上述tcpdump抓包體現(xiàn)的,kafka producer 在540秒的空閑后,主動斷開連接的現(xiàn)象一致:

圖片圖片

3.2 Kafka在key=null 時的分區(qū)策略- Sticky Partitioner vs Round Robin Partitioner

  • Kafka producer 寫ProducerRecord到kafka topic時, ProducerRecord對應(yīng)的具體 partiton分區(qū),是由Partitioner分區(qū)器決定的。當 ProducerRecord 的key=null 時,會采用默認的分區(qū)器,在Kafka 2.3 及kafka2.3以下版本,默認的分區(qū)策略是Round Robin Partitioner;而Kafka 2.4 及以上版本,默認的分區(qū)策略是Sticky Partitioner。
  • 目前該微服務(wù),寫日志到 kafka 時,log4j2.xml中都沒有配置 kafka record key,且采用的是kafka-clients-3.4.0.jar,所以此時會使用 Sticky Partitioner 而不是 Round Robin Partitioner,相鄰的多個ProducerRecord都會屬于同一個 record batch,都會 “sticky” 到同一個分區(qū),所以在日志低峰期,可能長時間都不會發(fā)送日志到某些分區(qū),如果該時間超過了producer 參數(shù) connections.max.idle.ms(默認 540000 即 9 分鐘),則該分區(qū)對應(yīng)的 TCP 連接,就會被 PRODUCER 主動關(guān)閉,如果 kafka 分區(qū)較多比如100個,而微服務(wù)日志較少且 batch.size 和 linger.ms 較大,該現(xiàn)象會更加明顯。

4 問題總結(jié)

  • 為減輕對服務(wù)端kafka broker的壓力,kafka producer 有空閑連接的檢查和清理機制,當某個tcp連接的idle時長大于參數(shù)connections.max.idle.ms時(該參數(shù)默認 540000 即 9 分鐘),kafka producer就會主動關(guān)閉該空閑連接,并打印日志org.apache.kafka.clients. NetworkClient -[Producer clientId=producer-1] Node 2 disconnected,此時所有的日志都會被正常落地,不會丟失日志數(shù)據(jù);
  • 當使用Kafka 2.4 及以上版本的 kafka producer時,如果沒有指定ProducerRecord的key,當業(yè)務(wù)低峰期微服務(wù)日志較少且 batch.size 和 linger.ms 較大時,上述kafka producer主動關(guān)閉空閑連接的現(xiàn)象會更加明顯,因為此時會使用默認的分區(qū)策略Sticky Partitioner,此時相鄰的多個ProducerRecord都會屬于同一個 record batch,都會 “sticky” 到同一個分區(qū),所以可能長時間都不會發(fā)送日志到某些分區(qū),如果該空閑時間超過了上述producer 參數(shù) connections.max.idle.ms,則該分區(qū)對應(yīng)的 TCP 連接,就會被 PRODUCER 主動關(guān)閉。

5.技術(shù)背景

5.1 KAFKA 客戶端和服務(wù)端在版本上的雙向兼容性

  • KAFKA 客戶端和服務(wù)端在版本上具有雙向兼容性,即客戶端和服務(wù)端的版本可以不同:Kafka has a "bidirectional" client compatibility policy. In other words, new clients can talk to old servers, and old clients can talk to new servers. This allows users to upgrade either clients or servers without experiencing any downtime.
  • 在上述案例中,kafka 集群服務(wù)端,使用的是kafka_2.11-2.2.0.jar;
  • 在上述案例中,該微服務(wù),通過logj寫日志到kafka時,使用的 kafka producer 版本是 kafka-clients-3.4.0.jar
  • 目前 apache kafka 最新版是 Kafka 3.8 (截止 202409);

圖片圖片

5.2 kafka 對空閑連接檢查和清理機制-producer 參數(shù)connections.max.idle.ms

為減輕對kafka broker 服務(wù)端的壓力,kafka producer 有空閑連接的檢查和清理機制:

  • 當某個tcp連接長時間idle時,kafka producer就會主動關(guān)閉該空閑連接,并打印日志org.apache.kafka.clients. NetworkClient -[Producer clientId=producer-1] Node 2 disconnected;
  • 判斷空閑連接的空閑閾值,就是參數(shù) connections.max.idle.ms,該參數(shù)默認 540000 即 9 分鐘,這也與上述tcpdump抓包體現(xiàn)的,kafka producer 在540秒的空閑后,主動斷開連接的現(xiàn)象一致;

5.3 Kafka在 key=null 時的分區(qū)策略- Sticky Partitioner vs Round Robin Partitioner

  • Kafka producer 寫ProducerRecord到kafka topic時, ProducerRecord對應(yīng)的具體 partiton分區(qū),是由Partitioner分區(qū)器決定的;
  • 當 ProducerRecord 的key=null 時,會采用默認的分區(qū)器,在Kafka 2.3 及kafka2.3以下版本,默認的分區(qū)策略是Round Robin Partitioner;而Kafka 2.4 及以上版本,默認的分區(qū)策略是Sticky Partitioner。
  • When key=null, the producer has a default partitioner that varies: Round Robin: for Kafka 2.3 and below;Sticky Partitioner: for Kafka 2.4 and above:

With Kafka producer <= v2.3: when there’s no partition and no key specified, the default partitioner sends data in a round-robin fashion. This results in more batches (one batch per partition) and smaller batches (imagine with 100 partitions). And this is a problem because smaller batches lead to more requests as well as higher latency.

With Kafka producer >= v2.4: Sticky Partitioner improves the performance of the producer especially with high throughput. It is a performance goal to have all the records sent to a single partition and not multiple partitions to improve batching. The producer sticky partitioner will “stick” to a partition until the batch is full or linger.ms has elapsed; After sending the batch, kafka producer will change the partition that is "sticky". This will lead to larger batches and reduced latency (because we have larger requests, and the batch.size is more likely to be reached). Over time, the records are still spread evenly across partitions, so the balance of the cluster is not affected.

5.4 相關(guān)源碼與參考鏈接

-- 相關(guān)源碼
org.apache.kafka.clients.producer.Partitioner
org.apache.kafka.clients.producer.internals.DefaultPartitioner
org.apache.kafka.clients.producer.UniformStickyPartitioner
org.apache.kafka.clients.producer.RoundRobinPartitioner
-- 參考連接:
KIP-480: Sticky Partitioner
KIP-794: Strictly Uniform Sticky Partitioner
https://cwiki.apache.org/confluence/display/KAFKA/KIP-794%3A+Strictly+Uniform+Sticky+Partitioner
https://cwiki.apache.org/confluence/display/KAFKA/KIP-480%3A+Sticky+Partitioner


責任編輯:武曉燕 來源: 明哥的IT隨筆
相關(guān)推薦

2024-10-10 17:17:57

2022-05-05 10:00:53

Kafka分區(qū)分配Linux

2024-02-27 08:05:32

Flink分區(qū)機制數(shù)據(jù)傳輸

2024-05-11 11:18:21

Kafka監(jiān)控框架

2023-11-21 08:11:48

Kafka的分區(qū)策略

2024-08-26 13:23:26

2024-10-06 12:56:36

Golang策略設(shè)計模式

2022-11-07 08:01:18

Git分支管理

2021-07-30 07:28:15

Kafka消息引擎

2019-06-03 09:00:25

Kubernetes部署金絲雀版本

2021-12-27 08:22:18

Kafka消費模型

2022-12-28 09:17:53

ApacheZookeeperProposals

2022-03-29 15:10:22

架構(gòu)設(shè)計模型

2021-01-20 08:07:52

oracle分區(qū)單表

2021-12-28 12:01:59

Kafka 消費者機制

2022-01-06 07:18:18

Kafka選舉Leader

2020-02-26 15:12:43

線程池增長回收

2022-01-04 11:31:15

不同路徑DP

2023-05-26 18:52:55

2021-05-14 08:33:02

Flink策略源碼
點贊
收藏

51CTO技術(shù)棧公眾號

精品美女在线观看| 亚洲激情图片一区| 成人亚洲激情网| 豆国产97在线 | 亚洲| 九九亚洲视频| 欧美一卡2卡3卡4卡| 亚洲乱码中文字幕久久孕妇黑人| 中文字幕在线免费| 99久久久免费精品国产一区二区 | 玖玖玖精品中文字幕| 中文在线观看av| 在线观看不卡| www高清在线视频日韩欧美| 99re这里只有| 国产不卡精品在线| 日韩欧美一区二区在线| 女人色极品影院| h视频在线播放| 99久久精品免费| 亚洲伊人久久综合| 亚洲精品毛片一区二区三区| 尤物精品在线| 欧美成人精品xxx| youjizz亚洲女人| 国偷自产视频一区二区久| 欧美日韩一区二区三区高清| 99精品人妻少妇一区二区| a级影片在线观看| 国产精品久久久久一区二区三区| 久久精品中文字幕一区二区三区| 国产情侣在线播放| 奇米影视一区二区三区| 欧美在线欧美在线| 日韩久久久久久久久| 亚洲色图插插| 日韩中文字在线| 欧美亚洲色综久久精品国产| 天天躁日日躁成人字幕aⅴ| 精品国产免费一区二区三区四区| 91女神在线观看| 成人亚洲网站| 在线观看国产日韩| 日韩欧美在线免费观看视频| 伊人久久视频| 色综合一区二区三区| 国产成人精品视频免费看| heyzo高清在线| 亚洲va天堂va国产va久| 少妇人妻无码专区视频| h片视频在线观看| 午夜日韩在线观看| www国产黄色| 欧美精品高清| 欧美日韩久久久| 欧美日韩中文不卡| 91精品麻豆| 日韩一区二区三| 色婷婷狠狠18禁久久| 97久久综合区小说区图片区 | 久久久精品视频国产| 亚洲ww精品| 欧美一区二区性放荡片| 久久发布国产伦子伦精品| 欧美电影在线观看一区| 欧美tickling网站挠脚心| 欧美成人精品一区二区综合免费| 538任你躁精品视频网免费| 日韩欧美第一区| 少妇一级淫免费观看| 天堂网av成人| 最近中文字幕mv在线一区二区三区四区 | 国产精品又粗又长| 手机在线理论片| 欧美在线|欧美| 欧美在线a视频| 99精品国产一区二区三区2021| 高潮一区二区三区乱码| 天海翼一区二区| 最新日韩av| 日本精品久久电影| 艳妇乳肉豪妇荡乳av无码福利| 久久精品久久精品| 97超碰在线播放| 色吊丝在线永久观看最新版本| 国产亚洲污的网站| 中文字幕免费高| 国产啊啊啊视频在线观看| 色综合天天综合色综合av | 日本午夜一区二区| 91九色单男在线观看| 蜜臀av免费在线观看| 久久精子c满五个校花| 一区二区精品在线观看| www555久久| 在线视频一区二区三区| 超碰91在线播放| 亚洲专区视频| 久热99视频在线观看| 国产69精品久久久久久久久久| 日韩1区2区日韩1区2区| 97免费资源站| 国产区在线视频| 亚洲一区自拍偷拍| 中文字幕av专区| 欧美综合精品| 欧美成人在线免费| 中文字幕一区二区三区免费看| 国产成人精品免费视频网站| 日韩精品国内| 黄在线观看免费网站ktv| 51精品秘密在线观看| caopor在线| 亚洲电影在线一区二区三区| 欧美一区二三区| 性一交一乱一乱一视频| 国产精品国模大尺度视频| 欧美成人一区二区在线观看| 日韩在线观看中文字幕| 日韩中文字幕av| 日本高清不卡码| www.色精品| 国产成人一区二区三区别| 97人人做人人爽香蕉精品| 日韩电影网在线| 国产一级视频在线播放| 国产一区福利在线| 亚洲乱码一区二区三区| 向日葵视频成人app网址| 亚洲国产免费av| 黄色小视频在线免费看| 国产精品1区二区.| 中国一级黄色录像| 四虎国产精品永久在线国在线| 亚洲天堂第一页| 久久久久久久黄色片| 成人午夜精品一区二区三区| 看全色黄大色大片| 四虎视频在线精品免费网址| 中文字幕亚洲欧美日韩高清| 精品人妻一区二区三区潮喷在线| 久久综合久久鬼色| 黄色免费观看视频网站| 日韩福利视频一区| 91av在线播放视频| 深夜福利视频在线免费观看| 精品久久久一区| 国产精品第七页| 国产一区白浆| 看欧美日韩国产| 极品美女一区| 伊人男人综合视频网| 国产乱码在线观看| 国产精品乱码一区二区三区软件 | 国产一区二区在线观看视频| 一区二区三区不卡在线| 亚洲久草在线| 精品中文字幕视频| 成人午夜免费福利| 精品成人乱色一区二区| 精品人妻一区二区三区视频| 免费日韩av| 日韩一区不卡| 国产成人久久精品一区二区三区| 欧美大尺度在线观看| www国产在线| 图片区小说区区亚洲影院| 中文字幕在线看高清电影| 日韩中文字幕91| 五月天色婷婷综合| 国产精品对白久久久久粗| 88xx成人精品| 成人免费黄色网页| 欧美一区二区三区免费观看视频 | 在线亚洲观看| 少妇免费毛片久久久久久久久| 久久亚洲资源中文字| 久精品免费视频| 在线观看xxx| 欧美男生操女生| 久久久久无码国产精品| 久久久久久麻豆| 手机在线视频一区| 日韩视频精品在线观看| 亚洲国产精品www| 9l视频自拍九色9l视频成人| 国产91在线视频| av免费在线免费| 日韩精品在线第一页| 一二三四区视频| 狠狠色噜噜狠狠狠狠97| 亚洲精品自拍视频在线观看| 成人sese在线| 不卡的av中文字幕| 亚洲福利专区| 国产精品亚洲天堂| 偷窥自拍亚洲色图精选| 91性高湖久久久久久久久_久久99| 国产在线美女| 久久精品2019中文字幕| 日本1级在线| 日韩欧美不卡在线观看视频| 国产一级片免费视频| 一区二区三区在线观看动漫| 中文字幕在线观看免费高清| 国产成人超碰人人澡人人澡| 亚洲免费一级视频| 国产欧美亚洲一区| 国产91视频一区| 四虎成人av| 欧美精品欧美精品| 国产日韩三级| 成人写真福利网| 国产成人亚洲一区二区三区| 97视频在线观看视频免费视频 | 亚洲欧美日韩在线| 特级西西www444人体聚色| 成人av免费在线| 91av免费观看| 精品一区二区三区免费播放| 欧美日韩在线不卡视频| 91久久黄色| 日本天堂免费a| 亚洲精品一区二区在线看| 日本在线观看不卡| 亚洲动漫在线观看| 国产在线精品一区二区中文| 日韩一级淫片| 亚洲字幕在线观看| 精品99re| 国产日韩亚洲欧美| 国产成人福利夜色影视| 欧美做受高潮电影o| 僵尸再翻生在线观看| 欧美激情2020午夜免费观看| 在线观看的网站你懂的| 久久精品成人一区二区三区| 9色在线观看| 中文日韩在线观看| 香蕉视频在线免费看| 国产一区二区免费| 北岛玲一区二区三区| 一区二区三区四区精品| 韩国中文字幕2020精品| 亚洲人成网站免费播放| 国产青青草在线| 一本大道亚洲视频| 在线观看黄色av| 日韩中文在线中文网在线观看| 日本中文字幕在线播放| 日韩一区在线视频| 黄色网页网址在线免费| 欧美成人高清视频| 成人免费一区二区三区牛牛| 欧美激情在线视频二区| av最新在线| 啪一啪鲁一鲁2019在线视频| 天天综合网天天| 国产精品亚洲视频在线观看| 日韩欧国产精品一区综合无码| 成人网址在线观看| 国产日韩中文在线中文字幕| 亚洲自拍欧美另类| 精品国产导航| 久久久久久国产精品mv| 日本精品三区| 浴室偷拍美女洗澡456在线| 欧美视频福利| 丰满爆乳一区二区三区| 石原莉奈在线亚洲二区| 亚洲成人福利在线| 国产精品一区久久久久| 影音先锋人妻啪啪av资源网站| 91丨九色丨蝌蚪富婆spa| 国产一级久久久久毛片精品| 中文字幕视频一区| 久久久99精品| 一本大道av伊人久久综合| 亚洲天堂手机版| 精品国产乱码久久久久久夜甘婷婷| 日本毛片在线观看| 中国日韩欧美久久久久久久久| av电影免费在线观看| 91精品国产高清久久久久久久久| 日本另类视频| www.成人av.com| 精品国产91| 99久久99久久精品| 久热精品视频| 中国特级黄色片| 国产日韩欧美a| 久草福利资源在线观看| 色婷婷香蕉在线一区二区| 国产精品羞羞答答在线| 日韩av影片在线观看| 毛片免费不卡| 热久久美女精品天天吊色| www一区二区三区| 欧美福利精品| 欧美aa国产视频| 88av.com| 99综合电影在线视频| 美女视频久久久| 一本大道av一区二区在线播放 | 国产精品69久久久久水密桃| 深爱五月激情网| 亚洲一二三四区不卡| 中文字幕免费播放| 日韩精品视频在线| 色呦呦在线观看视频| 国产精品一区二区三区久久| 欧美午夜18电影| 国产午夜精品视频一区二区三区| 日本伊人午夜精品| 亚洲av成人无码一二三在线观看| 中文字幕综合网| 91麻豆精品在线| 日韩国产精品一区| 美女网站视频在线| 亚洲一区二区三| 999久久久国产精品| 人妻无码视频一区二区三区| 成人激情视频网站| 欧美丰满艳妇bbwbbw| 欧美日韩一区二区在线观看 | 色综合久久中文字幕综合网小说| 午夜精品成人av| 久久riav二区三区| 在线免费观看欧美| av免费观看不卡| 亚洲主播在线观看| 国产男男gay网站| 久久综合九色九九| 粉嫩av国产一区二区三区| 亚洲国产精品一区在线观看不卡 | youjizz.com日本| 一区二区三区欧美视频| 国产精品无码一区二区桃花视频| 日韩中文字幕免费视频| 91成人短视频在线观看| 在线成人性视频| 久久99精品久久久久久| 国产又粗又长又硬| 欧美日韩国产乱码电影| 无遮挡动作视频在线观看免费入口| 国产精品精品国产| 欧美一级本道电影免费专区| 国产精品人人爽人人爽| 欧美激情一区在线观看| 亚洲午夜激情视频| 日韩一区二区在线视频| 日本精品一区二区三区在线观看视频| 黄色www在线观看| 国产福利一区二区三区视频 | 久久天堂精品| 天美传媒免费在线观看| 欧美日韩高清一区二区| 麻豆tv在线| 99在线热播| 一本色道久久综合一区 | 国产一区三区在线播放| 激情内射人妻1区2区3区| 国产精品免费免费| 国产丰满美女做爰| 午夜精品在线视频| 国产麻花豆剧传媒精品mv在线| 国产在线看一区| 老女人性淫交视频| 亚洲激情免费观看| 亚洲a∨精品一区二区三区导航| 亚洲乱码国产乱码精品天美传媒| 国内久久婷婷综合| 久久亚洲AV无码| 亚洲午夜av久久乱码| 日韩深夜福利网站| 91动漫在线看| 国产色产综合产在线视频| 国产精品伦理一区| 欧美激情一区二区久久久| 美日韩中文字幕| 亚洲欧美手机在线| 亚瑟在线精品视频| yourporn在线观看中文站| 91免费看片网站| 亚洲人成在线影院| 中国美女黄色一级片| 欧美成人性福生活免费看| 欧美无毛视频| 少妇一晚三次一区二区三区| 91蝌蚪porny成人天涯| 国产欧美久久久精品免费| 66m—66摸成人免费视频| 91麻豆精品国产91久久久平台| youjizz.com日本| 欧美日韩在线播放三区| av在线不卡免费| 色中文字幕在线观看| 久久亚洲一级片| 精品毛片一区二区三区| 国产精品18久久久久久首页狼| 国内揄拍国内精品久久|