3、Configuring Topics

如果您在應用程序上下文中定義了KafkaAdmin bean,它可以自動向代理添加主題。為此,您可以將每個主題的NewTopic@Bean添加到應用程序上下文中。2.3版本引入了一個新的類TopicBuilder,使創建此類bean更加方便。以下示例顯示了如何執行此操作:

@Bean
public KafkaAdmin admin() {Map<String, Object> configs = new HashMap<>();configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");return new KafkaAdmin(configs);
}@Bean
public NewTopic topic1() {return TopicBuilder.name("thing1").partitions(10).replicas(3).compact().build();
}@Bean
public NewTopic topic2() {return TopicBuilder.name("thing2").partitions(10).replicas(3).config(TopicConfig.COMPRESSION_TYPE_CONFIG, "zstd").build();
}@Bean
public NewTopic topic3() {return TopicBuilder.name("thing3").assignReplicas(0, List.of(0, 1)).assignReplicas(1, List.of(1, 2)).assignReplicas(2, List.of(2, 0)).config(TopicConfig.COMPRESSION_TYPE_CONFIG, "zstd").build();
}

從2.6版本開始,您可以省略partitions()和/或replias(),代理默認值將應用于這些屬性。代理版本必須至少為2.4.0才能支持此功能-請參閱KIP-464。

@Bean
public NewTopic topic4() {return TopicBuilder.name("defaultBoth").build();
}@Bean
public NewTopic topic5() {return TopicBuilder.name("defaultPart").replicas(1).build();
}@Bean
public NewTopic topic6() {return TopicBuilder.name("defaultRepl").partitions(3).build();
}

從2.7版本開始,您可以在一個KafkaAdmin中聲明多個NewTopics。NewTopics bean定義:

@Bean
public KafkaAdmin.NewTopics topics456() {return new NewTopics(TopicBuilder.name("defaultBoth").build(),TopicBuilder.name("defaultPart").replicas(1).build(),TopicBuilder.name("defaultRepl").partitions(3).build());
}

使用Spring Boot時,KafkaAdmin bean會自動注冊,因此您只需要NewTopic(和/或NewTopics)@Beans。

默認情況下,如果代理不可用,則會記錄一條消息,但上下文會繼續加載。您可以通過編程調用管理員的initialize()方法,稍后重試。如果您希望將此情況視為致命,請將管理員的fatalIfBrokerNotAvailable屬性設置為true。隨后,上下文初始化失敗。

如果代理支持它(1.0.0或更高版本),如果發現現有主題的分區數少于NewTopic.numPartitions,管理員會增加分區數。

從2.7版本開始,KafkaAdmin提供了在運行時創建和檢查主題的方法。

創建或修改主題

描述主題

對于更高級的功能,您可以直接使用AdminClient。以下示例顯示了如何執行此操作:

@Autowired
private KafkaAdmin admin;...AdminClient client = AdminClient.create(admin.getConfigurationProperties());...client.close();

從2.9.10、3.0.9版本開始,您可以提供一個Predicate<NewTopic>,用于確定是否應考慮創建或修改特定的NewTopic bean。例如,如果您有多個指向不同集群的KafkaAdmin實例,并且希望選擇應由每個管理員創建或修改的主題,則這很有用。

admin.setCreateOrModifyTopic(nt -> !nt.name().equals("dontCreateThisOne"));

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89945.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89945.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89945.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FastAPI+React19開發ERP系統實戰第04期

一、效果預覽 1.1 首頁 1.2 首頁暗黑模式 1.3 登錄頁 1.4 登錄頁暗黑模式 二、搭建React開發環境 2.1 項目依賴 package.json {"name": "erp-web","version": "1.0.0","description": "ERP系統前端 - React 19&quo…

數據庫|了解達夢數據庫并做安裝前的準備

哈嘍&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 你都用過哪些數據庫&#xff1f; 使用過的數據庫中覺得哪個數據庫最好用&#xff1f; 你使用過達夢數據庫嗎&#xff1f; 最近在做的一個SCADA項目&#xff0c;要求信創版本&#xff0c;其中數據庫也要使用信創目錄…

Java驅動AI革命:Spring AI八篇進階指南——從架構基礎到企業級智能系統實戰

系列文章目錄 提示&#xff1a;下面列出了整個系列的完整目錄&#xff0c;建議收藏本篇作為總覽入口&#xff1a;本人將在7月份更新完畢 第一篇&#xff1a;Spring AI 概述與架構設計 第二篇&#xff1a;Spring AI 基本組件詳解——ChatClient、Prompt、Memory 第三篇&#x…

hysAnalyser --- 支持菁彩視聽雙Vivid媒體信息解析

摘要 本文主要介紹 hysAnalyser 支持HDR Vivid格式的分析案例&#xff0c;滿足用戶分析HDR vivid 和 Audio Vivid格式的需要。 現將 hysAnalyser 新版本(v1.1.000)發布給網友使用&#xff0c;希望能幫助到更多音視頻開發的愛好者。使用過程中&#xff0c;若遇到問題請您通過 G…

C++中NULL等于啥

文章目錄 **一、`NULL` 的標準定義****二、常見實現方式**1. **定義為整數 `0`**2. **定義為 `0L` 或 `(void*)0`**(較少見)**三、與C語言的關鍵區別****四、`NULL` 在C++中的問題**1. **重載函數匹配歧義**2. **模板參數推導錯誤****五、C++11+ 的替代方案:`nullptr`****六…

pyhton基礎【20】面向對象進階一

目錄 一.進階 類方法和靜態方法 屬性(Properties) 繼承和多態 抽象基類(Abstract Base Classes - ABCs) 魔術方法(Magic Methods) 組合和聚合 使用場景 二.私有屬性 實現對數據的隱藏 設置私有屬性 添加額外對屬性操作的方法 三.私有方法 實現對方法的隱藏 直接…

滲透信息收集- Web應用漏洞與指紋信息收集以及情報收集

目錄 1. 整體流程與目標概述 2. 常用工具及其用途 2.1 掃描與枚舉工具 2.2 情報與數據聚合工具 2.3 流量攔截與手工驗證工具 3. 詳細技術手法與步驟 3.1 準備階段 3.2 主動掃描與指紋識別 3.3 數據交叉驗證與漏洞確認 3.4 進一步滲透與隱蔽操作 4. 實際工作經驗與注…

ASP.NET代碼審計 MVC架構 SQL注入漏洞n

接口路由 /Maintenance/GetMaintenanceList MaintenanceController.cs代碼 Maintenance 控制器里面的 GetMaintenanceList 方法 接收參數 id 傳進 MaintenanceManager.GetMaintenanceList 方法調用 MaintenanceManager.cs代碼 這里 id 和 faultId 不一樣是不影響的 C# 按順序匹…

Python入門Day4

Python中數據的常用操作 數據拷貝 根據以下代碼可以看出l1和l2實際上都是對于數據的引用&#xff0c;當l1被改變了&#xff0c;l2也會發生同樣的改變&#xff0c;l2 l1只是將l2指向了l1所指向的地址。 >>> l1 [1,2,[3,4],[5,6]] >>> l2 l1 >>>…

計算機網絡中的常用表項梳理

核心表項對比 表項 全稱 工作層級 主要功能 涉及設備 典型生命周期 MAC表 媒體訪問控制表 數據鏈路層&#xff08;二層&#xff09; Mac地址和端口關系 交換機、網橋 動態學習 FDB表 轉發數據庫 &#xff08;Forwarding DataBase&#xff09; 數據鏈路層&#xf…

百度輪崗:任命新CFO,崔珊珊退居業務二線

文 | 大力財經2025 年 7 月 1 日&#xff0c;百度組織再次變革&#xff0c;崔珊珊退居二線引發的行業關注。百度創始人李彥宏發布的內部信&#xff0c;宣布的新一輪組織調整里&#xff0c;崔珊珊退居二線這一變動&#xff0c;格外引人矚目。崔珊珊&#xff0c;這位在百度人力資…

TAMPER-RTC(STM32F103) 引腳說明

我來查看ST官方手冊中關于TAMPER-RTC引腳的具體說明。 Ran tool Ran tool Ran tool Read file: doc/STM32F103VGT6/STM32F103VGT6_specification.txt Read file: doc/STM32F103VGT6/STM32F103VGT6_specification.txt Ran tool Read file: doc/STM32F103VGT6/STM32F103VGT6_spec…

BUUCTF在線評測-練習場-WebCTF習題[極客大挑戰 2019]HardSQL1-flag獲取、解析

解題思路 打開靶場、熟悉的感覺 上次是過濾了很多字符&#xff0c;用了雙寫繞過進行注入即可&#xff0c;這次進階了難度 先老規矩判斷下閉合 11 123 報錯提示 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version…

MyBatis動態SQL進階:復雜查詢與性能優化實戰

引言 在復雜業務場景中&#xff0c;SQL查詢往往需要動態拼接條件、復用代碼片段&#xff0c;并支持批量操作。MyBatis的動態SQL功能提供了強大的解決方案&#xff0c;本文將深入解析<choose>條件分支、<sql>片段復用、批量操作優化等核心技巧&#xff0c;助你寫出高…

@Transactional 注解失效的場景及原因分析

先分析一下 1&#xff0c;內部調用&#xff0c;原對象調用&#xff0c;不是代理對象調用 2&#xff0c;private方法&#xff0c;源碼中&#xff0c;只能是public方法 3&#xff0c;異常被捕獲了&#xff0c;事物攔截器&#xff0c;無法感知 4&#xff0c;子線程調用&#x…

使用unity創建項目,進行動畫制作

1. 創建unity項目 error: error CS0006: Metadata file Library/PackageCache/com.unity.collab-proxy2.8.2/Lib/Editor/PlasticSCM/log4netPlastic.dll could not be found error CS0006: Metadata file Library/PackageCache/com.unity.collab-proxy2.8.2/Lib/Editor/Plasti…

Centos系統及國產麒麟系統設置自己寫的go服務的開機啟動項完整教程

1、創建服務文件 在 /etc/systemd/system/ 下新建服務配置文件&#xff08;需sudo權限&#xff09;&#xff0c;例如&#xff1a; sudo nano /etc/systemd/system/mygo.service 如下圖&#xff0c;創建的mygo.service 2、創建內容如下&#xff1a; DescriptionThe go HTTP a…

Java面試寶典: IO流

1. 下面哪個流類屬于面向字符的輸入流() 選項: A. BufferedWriter B. FileInputStream C. ObjectInputStream D. InputStreamReader 答案:D 詳細分析: 字符流與字節流的本質區別: 字符流(Character Streams)以Unicode字符為單位操作數據,適用于文本處理字節流(Byte…

黑馬python(二十五)

目錄&#xff1a;1.數據輸出-輸出為Python對象2.數據輸出-輸出到文件中3.綜合案例1.數據輸出-輸出為Python對象2.數據輸出-輸出到文件中移動文件到文件夾&#xff1a;生成了好多文件&#xff0c;因為Rdd是有分區的 &#xff0c;會把數據分散到各個分區去存儲&#xff0c;因為電…

【LeetCode 熱題 100】41. 缺失的第一個正數——(解法一)暴力解

Problem: 41. 缺失的第一個正數 題目&#xff1a;給你一個未排序的整數數組 nums &#xff0c;請你找出其中沒有出現的最小的正整數。 請你實現時間復雜度為 O(n) 并且只使用常數級別額外空間的解決方案。 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(N log N)…