国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《kafka 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(十)

這篇具有很好參考價(jià)值的文章主要介紹了《kafka 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(十)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Kafka 的 Java 生產(chǎn)者是如何管理 TCP 連接的?

為何采用 TCP?

  • Apache Kafka 的所有通信都是基于 TCP 的,而不是基于 HTTP 或其他協(xié)議。
    • 在開發(fā)客戶端時(shí),能夠利用 TCP 本身提供的一些高級(jí)功能,比如多路復(fù)用請(qǐng)求以及同時(shí)輪詢多個(gè)連接的能力。
    • 除了 TCP 提供的這些高級(jí)功能有可能被 Kafka 客戶端的開發(fā)人員使用之外,目前已知的 HTTP 庫在很多編程語言中都略顯簡(jiǎn)陋。

Kafka 生產(chǎn)者程序概覽

  • Kafka 的 Java 生產(chǎn)者 API 主要的對(duì)象就是 KafkaProducer。
  • 通常我們開發(fā)一個(gè)生產(chǎn)者的步驟有 4 步。
    • 第 1 步:構(gòu)造生產(chǎn)者對(duì)象所需的參數(shù)對(duì)象。
    • 第 2 步:利用第 1 步的參數(shù)對(duì)象,創(chuàng)建 KafkaProducer 對(duì)象實(shí)例。
    • 第 3 步:使用 KafkaProducer 的 send 方法發(fā)送消息。
    • 第 4 步:調(diào)用 KafkaProducer 的 close 方法關(guān)閉生產(chǎn)者并釋放各種系統(tǒng)資源。
      Properties props = new Properties ();
      props.put(“參數(shù)1, “參數(shù)1的值”);
      props.put(“參數(shù)2, “參數(shù)2的值”);
      ……
      try (Producer<String, String> producer = new KafkaProducer<>(props)) {
      producer.send(new ProducerRecord<String, String>(……), callback);
      ……
      }
      

何時(shí)創(chuàng)建 TCP 連接?

  • 當(dāng)我們開發(fā)一個(gè) Producer 應(yīng)用時(shí),生產(chǎn)者會(huì)向 Kafka 集群中指定的主題(Topic)發(fā)送消息,這必然涉及與 Kafka Broker 創(chuàng)建 TCP 連接。
  • TCP 連接是在創(chuàng)建 KafkaProducer 實(shí)例時(shí)建立的。在創(chuàng)建 KafkaProducer 實(shí)例時(shí),生產(chǎn)者應(yīng)用會(huì)在后臺(tái)創(chuàng)建并啟動(dòng)一個(gè)名為 Sender 的線程,該 Sender 線程開始運(yùn)行時(shí)首先會(huì)創(chuàng)建與 Broker 的連接。
  • 理論上,Sender 線程完全能夠觀測(cè)到一個(gè)尚未構(gòu)造完成的 KafkaProducer 實(shí)例。當(dāng)然,在構(gòu)造對(duì)象時(shí)創(chuàng)建線程沒有任何問題,但最好是不要同時(shí)啟動(dòng)它。
  • bootstrap.servers 參數(shù)
    • 它是 Producer 的核心參數(shù)之一,指定了這個(gè) Producer 啟動(dòng)時(shí)要連接的 Broker 地址。
    • 如果你為這個(gè)參數(shù)指定了 1000 個(gè) Broker 連接信息,那么你的 Producer 啟動(dòng)時(shí)會(huì)首先創(chuàng)建與這 1000 個(gè) Broker 的 TCP 連接。
    • Producer 一旦連接到集群中的任一臺(tái) Broker,就能拿到整個(gè)集群的 Broker 信息,故沒必要為 bootstrap.servers 指定所有的 Broker。
  • TCP 連接還可能在兩個(gè)地方被創(chuàng)建:一個(gè)是在更新元數(shù)據(jù)后,另一個(gè)是在消息發(fā)送時(shí)。
    • 當(dāng) Producer 更新了集群的元數(shù)據(jù)信息之后,如果發(fā)現(xiàn)與某些 Broker 當(dāng)前沒有連接,那么它就會(huì)創(chuàng)建一個(gè) TCP 連接。
    • 同樣地,當(dāng)要發(fā)送消息時(shí),Producer 發(fā)現(xiàn)尚不存在與目標(biāo) Broker 的連接,也會(huì)創(chuàng)建一個(gè)。

何時(shí)關(guān)閉 TCP 連接?

  • Producer 端關(guān)閉 TCP 連接的方式有兩種:一種是用戶主動(dòng)關(guān)閉;?種是 Kafka 自動(dòng)關(guān)閉。
    • 第一種主動(dòng)關(guān)閉實(shí)際上是廣義的主動(dòng)關(guān)閉,甚至包括用戶調(diào)用 kill -9 主動(dòng)“殺掉”Producer 應(yīng)用。當(dāng)然最推薦的方式還是調(diào)用 producer.close() 方法來關(guān)閉。
    • 第二種是 Kafka 幫你關(guān)閉,這與 Producer 端參數(shù) connections.max.idle.ms 的值有關(guān)。默認(rèn)情況下該參數(shù)值是 9 分鐘,即如果在 9 分鐘內(nèi)沒有任何請(qǐng)求“流過”某個(gè) TCP 連接,那么 Kafka 會(huì)主動(dòng)幫你把該 TCP 連接關(guān)閉。

文章來源地址http://www.zghlxwxcb.cn/news/detail-515843.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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(六)

    《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(六)

    在 Redis 主從集群中,哨兵機(jī)制是實(shí)現(xiàn)主從庫自動(dòng)切換的關(guān)鍵機(jī)制。 哨兵其實(shí)就是一個(gè)運(yùn)行在特殊模式下的 Redis 進(jìn)程,主從庫實(shí)例運(yùn)行的同時(shí),它也在運(yùn)行。哨兵主要負(fù)責(zé)的就是三個(gè)任務(wù):監(jiān)控、選主(選擇主庫)和通知。 監(jiān)控 哨兵進(jìn)程在運(yùn)行時(shí),周期性地給所有的主從庫

    2024年02月13日
    瀏覽(48)
  • 《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(一)

    《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(一)

    為了保證數(shù)據(jù)的可靠性,Redis 需要在磁盤上讀寫 AOF 和 RDB,但在高并發(fā)場(chǎng)景里,這就會(huì)直接帶來兩個(gè)新問題: 一個(gè)是寫 AOF 和 RDB 會(huì)造成 Redis 性能抖動(dòng); 另一個(gè)是 Redis 集群數(shù)據(jù)同步和實(shí)例恢復(fù)時(shí),讀 RDB 比較慢,限制了同步和恢復(fù)速度。 其實(shí),一個(gè)可行的解決方案就是使用

    2024年02月12日
    瀏覽(33)
  • 《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(五)

    《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(五)

    那我們總說的 Redis 具有高可靠性,又是什么意思呢? 其實(shí),這里有兩層含義:一是數(shù)據(jù)盡量少丟失,二是服務(wù)盡量少中斷。 AOF 和 RDB 保證了前者,而對(duì)于后者,Redis 的做法就是增加副本冗余量,將?份數(shù)據(jù)同時(shí)保存在多個(gè)實(shí)例上。 即使有一個(gè)實(shí)例出現(xiàn)了故障,需要過一段時(shí)

    2024年02月13日
    瀏覽(19)
  • 《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(四)

    《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(四)

    一旦服務(wù)器宕機(jī),內(nèi)存中的數(shù)據(jù)將全部丟失。目前,Redis 的持久化主要有兩大機(jī)制,即 AOF 日志和 RDB 快照。 AOF 日志是如何實(shí)現(xiàn)的? 我們比較熟悉的是數(shù)據(jù)庫的寫前日志(Write Ahead Log, WAL),也就是說,在實(shí)際寫數(shù)據(jù)前,先把修改的數(shù)據(jù)記到日志文件中,以便故障時(shí)進(jìn)行恢復(fù)

    2024年02月12日
    瀏覽(21)
  • 《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(三)

    《Redis 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(三)

    Redis 是單線程,主要是指 Redis 的網(wǎng)絡(luò) IO 和鍵值對(duì)讀寫是由一個(gè)線程來完成的,這也是 Redis 對(duì)外提供鍵值存儲(chǔ)服務(wù)的主要流程。但 Redis 的其他功能,比如持久化、異步刪除、集群數(shù)據(jù)同步等,其實(shí)是由額外的線程執(zhí)行的。 多線程的開銷 我們剛開始增加線程數(shù)時(shí),系統(tǒng)吞吐率

    2024年02月12日
    瀏覽(32)
  • 《MySQL 實(shí)戰(zhàn) 45 講》課程學(xué)習(xí)筆記(四)

    《MySQL 實(shí)戰(zhàn) 45 講》課程學(xué)習(xí)筆記(四)

    索引的出現(xiàn)其實(shí)就是為了提高數(shù)據(jù)查詢的效率,就像書的目錄一樣。 哈希表 哈希表是一種以鍵 - 值(key-value)存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu),我們只要輸入待查找的值即 key,就可以找到其對(duì)應(yīng)的值即 Value。 哈希的思路很簡(jiǎn)單,把值放在數(shù)組里,用一個(gè)哈希函數(shù)把 key 換算成一個(gè)確定的位

    2024年02月14日
    瀏覽(63)
  • 《Kubernetes入門實(shí)戰(zhàn)課》課程學(xué)習(xí)筆記(一)

    《Kubernetes入門實(shí)戰(zhàn)課》課程學(xué)習(xí)筆記(一)

    現(xiàn)在 Kubernetes 已經(jīng)沒有了實(shí)際意義上的競(jìng)爭(zhēng)對(duì)手,它的地位就如同 Linux 一樣,成為了事實(shí)上的云原生操作系統(tǒng),是構(gòu)建現(xiàn)代應(yīng)用的基石。 現(xiàn)代應(yīng)用是什么? 是微服務(wù),是服務(wù)網(wǎng)格,這些統(tǒng)統(tǒng)要圍繞著容器來開發(fā)、部署和運(yùn)行。 使用容器就必然要用到容器編排技術(shù),在現(xiàn)在只

    2024年02月17日
    瀏覽(58)
  • 唐宇迪機(jī)器學(xué)習(xí)實(shí)戰(zhàn)課程筆記(全)

    唐宇迪機(jī)器學(xué)習(xí)實(shí)戰(zhàn)課程筆記(全)

    機(jī)器學(xué)習(xí)模型的參數(shù),不是直接數(shù)學(xué)求解,而是利用數(shù)據(jù),進(jìn)行迭代epoch,梯度下降優(yōu)化求解。 目標(biāo):更好的擬合連續(xù)函數(shù)(分割連續(xù)樣本空間的平面h(·)) ε ( i ) varepsilon^{(i)} ε ( i ) 是 真實(shí)值 y ( i ) y^{(i)} y ( i ) 與 預(yù)測(cè)值 h θ ( x ) = θ T x ( i ) h_theta (x)=theta^Tx^{(i)} h θ ? ( x )

    2024年02月16日
    瀏覽(21)
  • 【HarmonyOS4學(xué)習(xí)筆記】《HarmonyOS4+NEXT星河版入門到企業(yè)級(jí)實(shí)戰(zhàn)教程》課程學(xué)習(xí)筆記(一)

    【HarmonyOS4學(xué)習(xí)筆記】《HarmonyOS4+NEXT星河版入門到企業(yè)級(jí)實(shí)戰(zhàn)教程》課程學(xué)習(xí)筆記(一)

    課程地址: 黑馬程序員HarmonyOS4+NEXT星河版入門到企業(yè)級(jí)實(shí)戰(zhàn)教程,一套精通鴻蒙應(yīng)用開發(fā) (本篇筆記對(duì)應(yīng)課程第 1 - 2節(jié)) 開場(chǎng)白,HarmonyOS 的一個(gè)簡(jiǎn)介,話不多說,直接看圖吧! 工欲善其事必先利其器,開發(fā)準(zhǔn)備需要兩件事:1、開發(fā)文檔;2、開發(fā)工具 打開鴻蒙官方網(wǎng)站,

    2024年04月24日
    瀏覽(23)
  • 北大肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》系列課程學(xué)習(xí)筆記[27]以太坊-反思

    目錄 一、智能合約的反思 ????????1.Is smart?contract really smart? ????????2. Irrevocability is a double edged sword. ????????3. Nothing is irrevocable. 二、語言設(shè)計(jì)上的反思 ????????1.Is solidity the right programming language? ????????2.編寫智能合約的語言應(yīng)該有什么樣的表達(dá)力? 三

    2024年01月20日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包