Spring Boot整合Kafka的詳細步驟

1. 安裝Kafka

  1. 下載Kafka:從Kafka官網下載最新版本的Kafka。

  2. 解壓并啟動

    • 解壓Kafka文件后,進入bin目錄。

    • 啟動ZooKeeper:./zookeeper-server-start.sh ../config/zookeeper.properties

    • 啟動Kafka:./kafka-server-start.sh ../config/server.properties

    • 確認啟動成功后,Kafka服務即可使用。

2. 創建Spring Boot項目

  1. 在Spring Initializr創建一個新項目,選擇需要的依賴(如Spring Web和Spring Kafka)。

  2. 下載并解壓項目,導入到IDE中。

3. 添加Kafka依賴

pom.xml中添加以下依賴:

<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>
</dependency>

這個依賴會自動配置Spring Kafka的相關組件。

4. 配置Kafka

application.yml中添加Kafka的配置:

spring:kafka:bootstrap-servers: localhost:9092consumer:group-id: my-groupauto-offset-reset: earliestkey-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializerproducer:key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializer

這里配置了Kafka服務器地址、消費者組、序列化器等。

5. 創建Kafka生產者

  1. 創建生產者配置類

@Configuration
public class KafkaProducerConfig {@Beanpublic ProducerFactory<String, String> producerFactory() {Map<String, Object> configProps = new HashMap<>();configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);return new DefaultKafkaProducerFactory<>(configProps);}@Beanpublic KafkaTemplate<String, String> kafkaTemplate() {return new KafkaTemplate<>(producerFactory());}
}
  1. 創建生產者服務類

@Service
public class KafkaProducerService {@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;public void sendMessage(String topic, String message) {kafkaTemplate.send(topic, message).addCallback(success -> System.out.println("Message sent successfully: " + message),failure -> System.err.println("Failed to send message: " + failure.getMessage()));}
}

通過KafkaTemplate發送消息。

6. 創建Kafka消費者

  1. 創建消費者服務類

@Service
public class KafkaConsumerService {@KafkaListener(topics = "my-topic", groupId = "my-group")public void consume(String message) {System.out.println("Received message: " + message);}
}

使用@KafkaListener注解監聽指定主題并接收消息。

7. 測試應用

  1. 創建一個控制器,用于發送消息:

@RestController
public class KafkaController {private final KafkaProducerService kafkaProducerService;public KafkaController(KafkaProducerService kafkaProducerService) {this.kafkaProducerService = kafkaProducerService;}@GetMapping("/send")public String sendMessage(@RequestParam String message) {kafkaProducerService.sendMessage("my-topic", message);return "Message sent";}
}
  1. 啟動Spring Boot應用,通過訪問http://localhost:8080/send?message=HelloKafka發送消息。

通過以上步驟,你可以在Spring Boot中成功集成并使用Kafka。

?

?

?

?

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

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

相關文章

【含文檔+PPT+源碼】基于微信小程序的學校體育館操場預約系統的設計與實現

課程簡介&#xff1a; 本課程演示的是一款基于微信小程序的學校體育館操場預約系統的設計與實現&#xff0c;主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含&#xff1a;項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從…

【Leetcode-Hot100】最大子數組和

題目 解答 class Solution(object):def maxSubArray(self, nums):""":type nums: List[int]:rtype: int"""len_nums len(nums)result -1e5left_fit, right_fit 0, len_nums-1if len_nums 1:return nums[0]sum_left, sum_right 0, 0while r…

txt、Csv、Excel、JSON、SQL文件讀取(Python)

txt、Csv、Excel、JSON、SQL文件讀取&#xff08;Python&#xff09; txt文件讀寫 創建一個txt文件 fopen(rtext.txt,r,encodingutf-8) sf.read() f.close() print(s)open( )是打開文件的方法 text.txt’文件名 在同一個文件夾下所以可以省略路徑 如果不在同一個文件夾下 ‘…

硬件電路設計之51單片機(2)

聲明&#xff1a;繪制原理圖和PCB的軟件為嘉立創EDA。根據B站尚硅谷嵌入式之原理圖&PCB設計教程學習所作個人用筆記。 目錄 一、原理圖詳解 1、TypeC接口 &#xff08;1&#xff09;TypeC接口介紹 &#xff08;2&#xff09;TypeC原理圖 2、5V轉3.3V 3、單片機電源開…

kubernetes 入門篇之架構介紹

經過前段時間的學習和實踐&#xff0c;對k8s的架構有了一個大致的理解。 1. k8s 分層架構 架構層級核心組件控制平面層etcd、API Server、Scheduler、Controller Manager工作節點層Kubelet、Kube-proxy、CRI&#xff08;容器運行時接口&#xff09;、CNI&#xff08;網絡插件&…

Flink CDC 出現錯誤碼 1236 和 SQL 狀態 HY000 的原因及解決方法

Flink CDC 出現錯誤碼 1236 和 SQL 狀態 HY000 的原因及解決方法 常見原因 server-id 沖突:當多個 Flink CDC 任務連接同一個 MySQL 實例,且使用了相同的 server-id 時,會導致該沖突。因為 MySQL 服務器通過 server-id 來區分不同的從服務器,如果多個 Flink CDC 任務使用相…

從PPT到PNG:Python實現的高效PPT轉圖工具

從PPT到PNG&#xff1a;Python實現的高效PPT轉圖工具 在日常工作中&#xff0c;PPT&#xff08;PowerPoint&#xff09;文件是我們常用的演示工具。然而&#xff0c;有時候我們需要將PPT的內容提取為圖片格式&#xff08;如PNG&#xff09;以便于展示或保存。手動將每一頁PPT保…

【開發語言】懸空指針問題

懸空指針&#xff08;Dangling Pointer&#xff09;是編程中常見的內存管理問題&#xff0c;尤其在C/C這類手動管理內存的語言中。以下是詳細解釋&#xff1a; 什么是懸空指針&#xff1f; 懸空指針是指向已經被釋放&#xff08;或失效&#xff09;內存的指針。這段內存可能已…

【持續更新中】常用docker服務部署指北

前言 docker是個好東西&#xff0c;小樹莓派上也能快速部署&#xff0c;方便管理環境。用這篇筆記來記錄下各種軟件的快速部署方式 準備環境 docker安裝 curl -fsSL https://get.docker.com -o get-docker.sh sh ./get-docker.shdocker鏡像源配置 一種方法是設置proxy&…

Godot學習-創建簡單動畫

文章目錄 1、準備工作Godot資源 2、創建項目3、創建結點4、創建動畫1、創建動畫2、添加軌道3、創建關鍵幀3.1 第一個關鍵幀3.2 第二個關鍵幀 5、加載后自動播放6、動畫循環7、軌道設置1、軌道更新模式2、軌跡插值3、其他屬性的關鍵幀4、編輯關鍵幀5、使用 RESET 軌道6、洋蔥皮 …

Python 爬蟲解決 GBK亂碼問題

文章目錄 前言爬取初嘗試與亂碼問題編碼知識科普UTF - 8GBKUnicode Python中的編碼轉換其他編碼補充知識GBKGB18030GB2312UTF&#xff08;UCS Transfer Format&#xff09;Unicode 總結 前言 在Python爬蟲的過程中&#xff0c;我嘗試爬取一本小說&#xff0c;遇到GBK亂碼問題&a…

B站搜索關鍵詞機制深度解析:算法邏輯與優化策略

在擁有超過5億用戶的B站生態系統中&#xff0c;每天都有海量的視頻內容被上傳和消費。對于創作者而言&#xff0c;如何讓自己的視頻在茫茫內容海洋中被目標受眾發現&#xff0c;是至關重要的課題。而關鍵詞&#xff0c;正是連接內容與用戶的關鍵橋梁。理解B站的搜索關鍵詞機制&…

寶塔面板中解鎖Laravel日志查看的奧秘

目錄 一、前言二、Laravel 日志基礎認知2.1 日志的作用2.2 Laravel 日志的默認配置 三、查找 Laravel 日志文件位置3.1 常規存儲路徑3.2 自定義路徑查找 四、查看 Laravel 日志內容4.1 寶塔面板文件管理器查看4.2 使用命令行查看 五、常見問題及解決方法5.1 權限不足無法查看5.…

Matlab Add Legend To Graph-圖例添加到圖

Add Legeng To Graph: Matlab的legend&#xff08;&#xff09;函數-圖例添加到圖 將圖例添加到圖 ,圖例是標記繪制在圖上的數據序列的有用方法。 下列示例說明如何創建圖例并進行一些常見修改&#xff0c;例如更改位置、設置字體大小以及添加標題。您還可以創建具有多列的圖…

K8S+Prometheus+Consul+alertWebhook實現全鏈路服務自動發現與監控、告警配置實戰

系列文章目錄 k8s服務注冊到consul prometheus監控標簽 文章目錄 系列文章目錄前言一、環境二、Prometheus部署1.下載2.部署3.驗證 三、kube-prometheus添加自定義監控項1.準備yaml文件2.創建新的secret并應用到prometheus3.將yaml文件應用到集群4.重啟prometheus-k8s pod5.訪…

基于YOLO11的車牌識別分析系統

【包含內容】 【一】項目提供完整源代碼及詳細注釋 【二】系統設計思路與實現說明 【三】系統數據統計與可視化分析支持 【技術棧】 ①&#xff1a;系統環境&#xff1a;Windows/macOS/Linux ②&#xff1a;開發環境&#xff1a;Python 3.8 ③&#xff1a;技術棧&#x…

每天記錄一道Java面試題---day39

GC如何判斷對象可以被回收了 回答重點 引用計數法&#xff1a; - 每個對象由一個引用計數屬性&#xff0c;新增一個引用時計數器加1&#xff0c;引用釋放時計數減1&#xff0c;計數為0時可以回收。可達性分析法&#xff1a; - 從GC Roots開始向下搜索&#xff0c;搜索所走過的…

機器學習(5)——支持向量機

1. 支持向量機&#xff08;SVM&#xff09;是什么&#xff1f; 支持向量機&#xff08;SVM&#xff0c;Support Vector Machine&#xff09;是一種監督學習算法&#xff0c;廣泛應用于分類和回歸問題&#xff0c;尤其適用于高維數據的分類。其核心思想是尋找最優分類超平面&am…

從零到一:網站設計新手如何快速上手?

從零到一&#xff1a;網站設計新手如何快速上手&#xff1f; 在當今數字化時代&#xff0c;網站已成為企業、個人展示信息、提供服務的重要窗口。對于想要涉足網站設計領域的新手而言&#xff0c;如何快速上手并掌握必要的技能成為首要任務。本文將從基礎知識、軟件工具、設計…

藍橋杯2024國B數星星

小明正在一棵樹上數星星&#xff0c;這棵樹有 n 個結點 1,2,?,n。他定義樹上的一個子圖 G 是一顆星星&#xff0c;當且僅當 G 同時滿足&#xff1a; G 是一棵樹。G 中存在某個結點&#xff0c;其度數為 ∣VG?∣?1。其中 ∣VG?∣ 表示這個子圖含有的結點數。 兩顆星星不相…