精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

欧美日韩中文字幕一区| 成人激情小说乱人伦| 中日韩美女免费视频网站在线观看| av片中文字幕| 欧美高清视频| 成人丝袜18视频在线观看| 欧美性受xxx| 国产一区二区播放| 亚洲精品蜜桃乱晃| 久久久www免费人成黑人精品| 第四色在线视频| 欧美亚洲综合视频| 亚洲第一搞黄网站| 日韩在线导航| 国产高清视频免费观看| 午夜在线视频观看日韩17c| 最新国产成人av网站网址麻豆| 亚洲av无一区二区三区久久| 欧美大片免费| 一级女性全黄久久生活片免费| 麻豆亚洲一区| www黄色在线观看| 日本不卡123| 欧美精品videosex性欧美| 中文字幕在线1| 一本一道久久a久久| 欧洲av一区二区嗯嗯嗯啊| 国产视频在线观看网站| av基地在线| 91看片淫黄大片一级| 91视频8mav| 在线观看国产小视频| 国产精品久久久免费| 欧美成人一区二区三区电影| 女人黄色一级片| 免费一区二区三区视频导航| 精品国产91乱码一区二区三区| 色婷婷综合网站| 亚洲高清黄色| 丁香五六月婷婷久久激情| 免费看日b视频| 麻豆视频网站在线观看| 国产欧美一区二区三区沐欲| 欧美重口乱码一区二区| 少妇高潮一区二区三区99小说| 国产精品一级黄| 69堂成人精品视频免费| 国产毛片久久久久| 久久99精品久久久久久动态图| 国产精品色婷婷视频| 99re国产在线| 日韩国产欧美在线播放| 日本电影亚洲天堂| 男人天堂视频网| 久久久久99| 国产精品444| 国产一级片免费视频| 日韩主播视频在线| 国产精品久久久久久久久久久久久久| 91视频久久久| 毛片一区二区三区| 91手机视频在线观看| 国产又大又黄又爽| 国产精品系列在线播放| 国产精品国产一区二区| 殴美一级特黄aaaaaa| 99久久99久久精品免费观看| 久久综合婷婷综合| 国产乱子伦三级在线播放| 国产精品乱人伦中文| 伊人久久av导航| 永久免费网站在线| 亚洲成人av一区二区| 国产日韩一区二区在线| 欧洲成人一区| 91精品欧美福利在线观看| 精产国品一区二区三区| 女人抽搐喷水高潮国产精品| 亚洲视频免费一区| 福利视频第一页| 国产精品豆花视频| 91成人福利在线| 曰批又黄又爽免费视频| 国产成人av福利| 久久久一本精品99久久精品66| 超碰97在线免费观看| 最新不卡av在线| 欧美不卡在线播放| 97精品国产综合久久久动漫日韩| 欧美精选午夜久久久乱码6080| 91香蕉国产线在线观看| 久久久久观看| 色噜噜狠狠狠综合曰曰曰88av| 久久久久亚洲av成人片| 老牛影视一区二区三区| 91久久精品美女高潮| 色呦呦视频在线| 亚洲天堂成人在线观看| 午夜精品久久久久久久无码| 深夜福利亚洲| 亚洲精品aⅴ中文字幕乱码| 妖精视频在线观看免费| 亚洲麻豆视频| 亚洲自拍偷拍网址| 国产在线黄色| 亚洲高清不卡在线| 亚洲 激情 在线| 欧美电影在线观看完整版| 日韩中文第一页| 日韩精品在线免费视频| 国模大尺度一区二区三区| 欧美成人在线免费观看| 天堂亚洲精品| 在线播放中文字幕一区| 少妇真人直播免费视频| 黄色综合网站| 成人国产精品免费视频| 国产黄在线观看| 天天色 色综合| 三级av免费看| 日韩在线观看一区 | 成人日韩欧美| 91福利在线免费观看| 日本一卡二卡在线| 午夜精品影院| 91久久久国产精品| 日韩成人影视| 欧美最猛黑人xxxxx猛交| 亚洲欧美视频在线播放| 亚洲高清久久| http;//www.99re视频| 搞黄网站在线观看| 欧美精品视频www在线观看| 免费看黄色的视频| 亚洲在线黄色| 久久影院理伦片| 国产伦久视频在线观看| 精品久久久久久亚洲综合网| 成年人一级黄色片| 精品一区二区综合| 中文字幕一区二区三区有限公司 | 欧美18hd| 精品视频资源站| youjizz亚洲女人| 三级久久三级久久久| 日本一区二区精品视频| 一呦二呦三呦精品国产| 亚洲日本成人网| 黄色av网站免费| 国产精品国产三级国产普通话99| 亚洲黄色av网址| 日韩伦理一区| 国产在线不卡精品| 国产在线看片| 日韩美女视频在线| 日本少妇激情舌吻| 91亚洲精品久久久蜜桃| av片中文字幕| 久久神马影院| 亚洲一区中文字幕在线观看| 国产素人视频在线观看| 日韩精品一区二区三区视频 | 国产欧美日韩一区二区三区| 爱看av在线入口| 日韩国产在线看| 亚洲色成人www永久网站| 国产精品五月天| www.久久com| 亚洲久色影视| 日本一区视频在线| 四虎视频在线精品免费网址| 欧美成人亚洲成人| 性感美女视频一二三| 欧美在线你懂的| 久久精品亚洲a| 成人午夜激情影院| 国模吧无码一区二区三区| av伊人久久| 99热国产免费| 美女写真久久影院| 久久国产视频网站| 亚洲 美腿 欧美 偷拍| 欧美亚洲动漫另类| 久久久久久久福利| 国产亚洲成av人在线观看导航 | 久久久久国产精品一区| 日韩精品视频无播放器在线看| 欧美日韩一二三| 亚洲精品视频在线观看免费视频| 日本一区免费视频| 亚洲欧美激情一区二区三区| 久久激情久久| 免费日韩在线观看| 狠狠操综合网| y111111国产精品久久婷婷| 欧美自拍电影| 九九视频这里只有精品| 男同在线观看| 欧美电影免费观看完整版| 欧美一级做a爰片免费视频| 夜夜嗨av一区二区三区中文字幕 | 精品国产网站| 国产精品二区二区三区| a成人v在线| 亚州精品天堂中文字幕| 精精国产xxxx视频在线| 亚洲一区999| 乱色精品无码一区二区国产盗| 欧美日韩中字一区| 91在线视频在线观看| 亚洲免费av在线| 伊人影院综合网| 91在线观看一区二区| 久久久久久无码精品人妻一区二区| 人人精品人人爱| 1024av视频| 亚洲一级网站| 300部国产真实乱| 欧美xxav| 性欧美videosex高清少妇| 亚州国产精品| 国产日韩欧美一区二区三区四区| 国内不卡的一区二区三区中文字幕| 国产成人激情视频| 国产在线88av| 久久男人的天堂| 丝袜中文在线| 九九视频这里只有精品| 91小视频xxxx网站在线| 久久精品国产一区| 3d成人动漫在线| 伊人成人开心激情综合网| 亚洲区小说区图片区| 精品福利av导航| 精品人妻无码一区二区三区蜜桃一| 欧美日韩国产综合一区二区三区| 一二三区免费视频| 欧美性高潮床叫视频| 黄色片视频网站| 欧美体内谢she精2性欧美| www.天天色| 婷婷六月综合网| 午夜精品久久久久久久久久久久久蜜桃| 亚洲韩国精品一区| 国产福利久久久| 香蕉成人伊视频在线观看| 久青草视频在线观看| 亚洲一区二区三区四区不卡| 久久精品这里只有精品| 亚洲一卡二卡三卡四卡| 日本三级理论片| 日韩欧美中文在线| 国产男人搡女人免费视频| 91国产成人在线| 99久久精品久久久久久ai换脸| www.com.cn成人| 日韩免费视频在线观看| 欧美一区国产| 国产专区精品视频| 国产在线不卡一区二区三区| 草莓视频一区| 奇米777国产一区国产二区| 另类欧美小说| 欧美三级情趣内衣| 一本—道久久a久久精品蜜桃| 欧美+日本+国产+在线a∨观看| 成人午夜免费在线视频| 亚洲一区图片| 日日噜噜夜夜狠狠| 国产乱人伦精品一区二区在线观看 | 亚洲精品一区二区在线| 国产在线观看免费| 久久视频在线视频| av免费不卡国产观看| 国产成人精品在线观看| 玖玖精品一区| 狠狠爱一区二区三区| 精品一区电影| av久久久久久| 巨乳诱惑日韩免费av| 不用播放器的免费av| 播五月开心婷婷综合| 国产伦理片在线观看| 亚洲激情成人在线| 亚洲欧美综合自拍| 宅男噜噜噜66一区二区66| 亚洲色图 校园春色| 日韩在线视频播放| 1024在线看片你懂得| 国产精品亚洲美女av网站| 91欧美日韩在线| 香蕉久久免费影视| 在线日韩av| 国产精品igao网网址不卡| 成人av在线资源网| 成人黄色a级片| 亚洲高清视频中文字幕| 国产精品久久久久久无人区| 亚洲精品suv精品一区二区| 黄在线免费看| 国产精品白嫩初高中害羞小美女| 一区二区三区四区精品视频| 相泽南亚洲一区二区在线播放 | 999在线免费视频| 国产成人在线视频网站| 手机毛片在线观看| 欧美日韩国产影院| www.国产黄色| 久久精品国产亚洲精品| 亚洲电影有码| 久久av一区二区三区漫画| 午夜国产精品视频免费体验区| 婷婷丁香激情网| 91丝袜呻吟高潮美腿白嫩在线观看| 中国一级片在线观看| 欧美色涩在线第一页| 天堂91在线| 国产69精品久久久久9| 国产精品**亚洲精品| 亚洲精品成人自拍| 乱码第一页成人| 日本黄色录像片| 亚洲国产精品久久久久秋霞影院| 国产特黄一级片| 久久久www成人免费精品张筱雨| av一区在线| 日本不卡免费新一二三区| 国产精品久久777777毛茸茸| 无码国产69精品久久久久网站| 亚洲九九爱视频| 97精品久久人人爽人人爽| 国产亚洲精品久久久久久| 久久sese| 久久一区二区三区av| 夜夜嗨av一区二区三区网站四季av| 白嫩情侣偷拍呻吟刺激| 亚洲在线成人精品| 丁香花免费高清完整在线播放 | 日韩精品99| 欧美婷婷久久| 日韩精品欧美精品| 欧美老女人性生活视频| 欧美性videosxxxxx| 精品三级久久久久久久电影聊斋| 57pao成人永久免费视频| 天堂俺去俺来也www久久婷婷| 男女超爽视频免费播放| 不卡av在线免费观看| 性无码专区无码| 亚洲免费电影在线观看| 免费成人直播| 日韩电影免费观看在| 免费成人小视频| 精品一区二区在线观看视频| 91精品国产福利在线观看| 中文字幕在线观看网站| 狠狠久久综合婷婷不卡| 国产亚洲福利| 久久视频精品在线观看| 欧美高清视频不卡网| 国内外激情在线| 国模精品一区二区三区| 免费在线亚洲欧美| youjizz亚洲女人| 欧美一级高清片| 阿v视频在线| 日本一区二区在线| 精品夜夜嗨av一区二区三区| 欧美精品一级片| 精品亚洲国产成av人片传媒| 日韩在线免费| 国产精品88久久久久久妇女| k8久久久一区二区三区| 欧美一区二区三区不卡视频| 日韩在线精品一区| 136国产福利精品导航网址应用| 久久视频这里有精品| 国产免费观看久久| 亚洲成人黄色片| 日韩免费精品视频| 亚洲天堂一区二区三区四区| 无码一区二区精品| 欧美午夜在线观看| 欧美xxxx做受欧美88bbw| 欧美人与物videos另类| 韩国精品一区二区| 欧美国产成人精品一区二区三区| 视频在线观看99| 日韩欧美中文字幕电影| 亚洲xxx在线观看| 精品成人av一区| 免费在线看a| 狠狠色综合一区二区| 久久国产精品第一页| 91看片在线播放| 久久九九亚洲综合| 国产精品入口久久| av电影中文字幕| 精品视频一区二区不卡| 国产伦子伦对白在线播放观看|