客戶端都有哪些不常見但是很高級(jí)的功能?
什么是 Kafka 攔截器?
- 攔截器基本思想就是允許應(yīng)用程序在不修改邏輯的情況下,動(dòng)態(tài)地實(shí)現(xiàn)一組可插拔的事件處理邏輯鏈。
- 它能夠在主業(yè)務(wù)操作的前后多個(gè)時(shí)間點(diǎn)上插入對(duì)應(yīng)的“攔截”邏輯。
- Spring MVC 攔截器的工作原理:
- Kafka 攔截器借鑒了這樣的設(shè)計(jì)思路:可以在消息處理的前后多個(gè)時(shí)點(diǎn)動(dòng)態(tài)植入不同的處理邏輯,比如在消息發(fā)送前或者在消息被消費(fèi)后。
Kafka 攔截器
- Kafka 攔截器分為生產(chǎn)者攔截器和消費(fèi)者攔截器。
- 生產(chǎn)者攔截器允許你在發(fā)送消息前以及消息提交成功后植入你的攔截器邏輯;
- 消費(fèi)者攔截器支持在消費(fèi)消息前以及提交位移后編寫特定邏輯。
- 這兩種攔截器都支持鏈的方式,即你可以將一組攔截器串連成一個(gè)大的攔截器,Kafka 會(huì)按照添加順序依次執(zhí)行攔截器邏輯。
- 當(dāng)前 Kafka 攔截器的設(shè)置方法是通過參數(shù)配置完成的。
- 生產(chǎn)者和消費(fèi)者兩端有一個(gè)相同的參數(shù),名字叫 interceptor.classes,它指定的是一組類的列表,每個(gè)類就是特定邏輯的攔截器實(shí)現(xiàn)類。
- 指定攔截器類時(shí)要指定它們的全限定名,也就是要把完整包名也加上,不要只有一個(gè)類名,并且還要保證 Producer 程序能夠正確加載攔截器類。
典型使用場(chǎng)景
- Kafka 攔截器可以應(yīng)用于包括客戶端監(jiān)控、端到端系統(tǒng)性能檢測(cè)、消息審計(jì)等多種功能在內(nèi)的場(chǎng)景。
- Kafka 默認(rèn)提供的監(jiān)控指標(biāo)都是針對(duì)單個(gè)客戶端或 Broker 的,你很難從具體的消息維度去追蹤集群間消息的流轉(zhuǎn)路徑。同時(shí),如何監(jiān)控一條消息從生產(chǎn)到最后消費(fèi)的端到端延時(shí)也是很多 Kafka 用戶迫切需要解決的問題。
- 通過實(shí)現(xiàn)攔截器的邏輯以及可插拔的機(jī)制,我們能夠快速地觀測(cè)、驗(yàn)證以及監(jiān)控集群間的客戶端性能指標(biāo),特別是能夠從具體的消息層面上去收集這些數(shù)據(jù)。這就是 Kafka 攔截器的一個(gè)非常典型的使用場(chǎng)景。
文章來源地址http://www.zghlxwxcb.cn/news/detail-517346.html
文章來源:http://www.zghlxwxcb.cn/news/detail-517346.html
到了這里,關(guān)于《kafka 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(九)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!