面試這個領域最近環境不行,所以卷起來流量挺大?
關于K8s
? ? ? 其實看我之前的博客,k8s剛有點苗頭的時候我就研究過,然后工作的時候間接接觸 也自己玩過 但是用的不多就忘記了,正苦于不知道寫什么,水一篇 用來面試應該是夠了
clickhouse
kafka
搭建:
? ? ?總體來說 比較簡單,主要是配置文件,命令的話分開了producer /consumer/ topic 大概這么個意思。具體可以看里面的博客?
#host配置
#安裝包
wget https://archive.apache.org/dist/kafka/3.2.0/kafka_2.13-3.2.0.tgz
#壓縮 配置系統變量
#zk集群搭建 當然kafka自帶zk 這都行,集群中zk的配置是都需要改的
#3.x kafka提供了kraft取代zk
https://blog.csdn.net/qq_41865652/article/details/126588263
?點對點:生產者 發送 消息 到隊列,消費者從隊列 取出 并 消費(消費后不再儲存)
? ? ?一條消息 只會被一個消費者消費,想發給多個消費者 多次發送
發布/訂閱:一對多,多個訂閱者消費 消息,數據保留指定期限,默認7天
? ? ?同一個消費組 中消費者 不能消費同一個partition中的數據
? ? ?一個消費者一個分區(消費組)
0.9 偏移量儲存在kafka的topic中
? ?0.9將offset保存在zk中,0.9及后保存在Kafka“__consumer_offsets”主題
生產者
? ? ? ?生產消息追加到log文件,采用分片/索引機制,將每個partition 分為多個segment,每個segment對應2個文件 index log,同一文件夾(topic名稱+分區序號)。
同步
? ? 同步:ISR列表(同步副本 里面的follow與leader同步,選擇從這個里面選? H W/LEO)
? ? ? HW:消費者能看到的offset,isr隊列min的LED ,hw-led待同步的消息
? ? ? ? ? 選leader (epoch,offset)二位數組,前面是任期 后面是標識大小誰最新
? ? ? follower故障,從isr剔除,恢復后讀取上一次HW高于的截取掉 從hw開始向leader同步 加入isr
- ack-1 數據不丟但會重,生產者pid消息seqnumber 如pid partion seqnumber一樣,重復數據
- 0不重復 丟失
消費者
拉取pull,無消息 死循環,消費者 消費數據時傳遞timeout參數,當時無數據 等待一段時間再返回
topic多個partion
- 輪詢rountRobin對topic組生效,一個消費組內all消費者訂閱主題是一樣的
- rang單個topic生效,數據不均衡
消費者不能同時消費 同組的 同一個分區
分區策略:消費者組 消費者個數 發生變化
offset維護
斷電 宕機,消費者恢復后 記錄的offset(zk/kafka)
? 消費者/topic/partion 確定offset?
流程
producer兩個線程,主線程 攔截/序列化/分區==》處理消息 到 消息累加器(32M / 隊列) producerBatch批量發送到sender線程,批量組織request 給selector 送到kafka
? ?kafka的pageCache 異步刷盤 flusher 追加到日志文件
? ? ? ?partition . segment:
? ? ? ? ? ? log 存儲數據 位置:offset?
? ? ? ? ? ? index索引,相對位移:物理位置;稀疏索引? msg設置指針 mmap進行內存操作
? ?被消費ack 清緩存
? ?消費者帶著offset,去fetch 利用sendfile底層NIO(transferTo/transferFrom)
消費者能力不足:
增加消費者數量
主題增加分區,消費者并行處理能力
? ?
優化消費邏輯,多線程
max.poll.interval.msrang消費者更長時間處理消息
監控 報警 /及時調整
? ?kafka內置指標
kafka stream:內置了自適應調節機制
數據清理策略:及時清理
啟動kafka壓縮
? ?compression.type,none不壓縮/lz4壓縮 加大cpu開銷
升級版本
命令
topic的./bin/kafka-topics.sh
生產者./bin/kafka-console-producer.sh
消費者./bin/kafka-console-consumer.sh
大數據之Kafka(心得)_集群級kafka數據消費的挑戰與實踐-CSDN博客
Kafka集群搭建及生產者消費者案例_kafka 消費者組 多機器-CSDN博客