RabbitMQ 消息轉換器詳解

RabbitMQ 消息轉換器詳解

一、為什么需要消息轉換器?

RabbitMQ 的消息傳輸協議只識別字節流

  • 發送對象時,需要序列化成字節數組
  • 接收消息時,需要將字節數組反序列化成對象

如果不使用消息轉換器

  • 需要手動序列化和反序列化,代碼冗余且容易出錯

使用消息轉換器:

  • AMQP模板(RabbitTemplate)自動完成消息編碼/解碼
  • 減少樣板代碼,提高可維護性

二、Spring AMQP 常用消息轉換器

轉換器類作用
SimpleMessageConverter默認轉換器,支持 Stringbyte[]Serializable
Jackson2JsonMessageConverter使用 Jackson 將對象序列化為 JSON
SerializationMessageConverter使用 Java 原生序列化機制
ContentTypeDelegatingMessageConverter根據 contentType 動態選擇轉換器

三、默認消息轉換器

Spring AMQP 默認使用 SimpleMessageConverter

  • 發送 String → UTF-8 編碼為 byte[]
  • 發送 byte[] → 直接傳輸
  • 發送 Serializable 對象 → Java 原生序列化

缺點

  • 原生序列化體積大、性能一般
  • 可讀性差(調試和跨語言支持差)

四、JSON 消息轉換器

4.1 引入依賴

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency>

4.2 配置消息轉換器

@Bean
public MessageConverter messageConverter(){// 1.定義消息轉換器Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();// 2.配置自動創建消息id,用于識別不同消息,也可以在業務中基于ID判斷是否是重復消息jackson2JsonMessageConverter.setCreateMessageIds(true);return jackson2JsonMessageConverter;
}

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

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

相關文章

內網穿透的應用-告別“現場救火”!用 cpolar遠程調試讓內網故障排查進入“云時代”

文章目錄前言**常見困境與解決方案****實際應用價值**1. Remote JVM Debug2. 系統要求與環境準備2.1 服務器環境2.2 本地開發環境3. 內網服務器準備及開始3.1 安裝cpolar配置支持遠程ssh登錄3.1.1 什么是cpolar&#xff1f;3.1.2 安裝cpolar3.1.3 注冊及配置cpolar系統服務3.1.…

Cherryusb UAC例程對接STM32內置ADC和PWM播放音樂和錄音(下)=>UAC+STM32 ADC+PWM實現錄音和播放

1. 程序基本框架整個程序框架, 與之前的一篇文章《Cherryusb UAC例程對接STM32內置ADC和DAC播放音樂和錄音(中)>UACSTM32 ADCDAC實現錄音和播放》基本一致, 只是這次將DAC替換成了PWM。因此這里不再贅述了。 2. audio_v1_mic_speaker_multichan_template.c的修改說明(略) 參…

1 JQ6500語音播報模塊詳解(STM32)

系列文章目錄 文章目錄系列文章目錄前言1 JQ6500簡介2 基本參數說明2.1 硬件參數2.2 模塊管腳說明3 控制方式3.1 通信格式3.2 通信指令4 硬件設計5 軟件設計5.1 main.c5.2 board_config5.2.1board_config.h5.2.2 board_config.c5.3 module_config5.3.1 module_config.h5.3.2 mo…

常用數據分析工具

Tableau丨Power BI丨FineBI丨SQL丨影刀丨Excel丨Python丨 參考視頻&#xff1a;【戴師兄】數據分析有哪些必學工具&#xff1f;2023最新版&#xff01;Tableau丨Power BI丨FineBI丨SQL丨影刀丨Excel丨Python丨課程教程自學攻略_嗶哩嗶哩_bilibili 文檔資料&#xff1a; 【戴師兄…

OBOO鷗柏丨智能會議平板教學查詢一體機交互式觸摸終端招標投標核心標底參數要求

整機參數要求&#xff1a;55寸/65寸/75寸/85-86寸/98寸/100寸/110寸/115寸智能會議平板教學觸控一體機/智慧黑板觸摸屏招標投標核心標底參數要求1、整機屏幕采用≥采用超高清原廠原包原裝工業LCD液晶屏面板&#xff1b;具有高色域&#xff0c;顯示動態視頻、web及3D動畫時&…

無人機在環保監測中的應用:低空經濟發展的智能監測與高效治理

一、行業背景與技術革新 隨著全球環境問題日益嚴峻&#xff0c;傳統環保監測手段已難以滿足現代環境管理的需求。固定監測站點建設成本高、覆蓋范圍有限&#xff0c;地面巡查效率低下且存在安全風險。在此背景下&#xff0c;無人機技術憑借其獨特的空間優勢和技術特性&#xff…

PO、BO、VO、DTO、POJO、DAO、DO基本概念

一、圖解二、相關概念 1、PO&#xff08;Persistant Object - 持久化對象&#xff09; 核心定位&#xff1a; 直接與數據庫表結構一一映射的對象&#xff0c;通常用于 ORM&#xff08;對象關系映射&#xff09;框架&#xff08;如 MyBatis、Hibernate&#xff09;中。 特點&…

todoList清單(HTML+CSS+JavaScript)

&#x1f30f;個人博客主頁&#xff1a; 前言&#xff1a; 前段時間學習了JavaScript&#xff0c;然后寫了一個todoList小項目&#xff0c;現在和大家分享一下我的清單以及如何實現的&#xff0c;希望對大家有所幫助 &#x1f525;&#x1f525;&#x1f525;文章專題&#xff…

Mac M1探索AnythingLLM+Ollama+知識庫問答

AnythingLLM內置 RAG、AI Agent、可視化/無代碼的 Agent 編排&#xff0c;支持多家模型與本地/云端向量庫&#xff0c;并提供多用戶與可嵌入的聊天組件&#xff0c;用來快速驗證“知識 模型 工具”拼成的 AI 應用。 1 AnythingLLM、Ollama準備 1&#xff09;AnythingLLM 打…

【 Navicat Premium 17 完全圖形化新手指南(從零開始)】

Navicat Premium 17 完全圖形化新手指南&#xff08;從零開始&#xff09; 一、準備階段&#xff1a;清理現有環境 1. 刪除已創建的測試數據庫&#xff08;如需重新開始&#xff09;打開Navicat Premium 17 雙擊桌面圖標啟動程序在左側連接面板中找到你的MySQL連接&#xff08;…

Web學習筆記5

Javascript概述1、JS簡介JS是運行在瀏覽器的腳本編程語言&#xff0c;最初用于Web表單的校驗。現在的作用主要有三個&#xff1a;網頁特效、表單驗證、數據交互JS由三部分組成&#xff0c;分別是ECMAscript、DOM、BOM&#xff0c;其中ECMAscript規定了JS的基本語法和規則&#…

部署一個開源的證件照系統

以下數據來自官方網站,記錄下來,方便自己 項目簡介 &#x1f680; 謝謝你對我們的工作感興趣。您可能還想查看我們在圖像領域的其他成果&#xff0c;歡迎來信:zeyi.linswanhub.co. HivisionIDPhoto 旨在開發一種實用、系統性的證件照智能制作算法。 它利用一套完善的AI模型工作…

Linux客戶端利用MinIO對服務器數據進行同步

接上篇 Windows客戶端利用MinIO對服務器數據進行同步 本篇為Linux下 操作&#xff0c;先看下我本地的系統版本 所以我這里下載的話&#xff0c;是AMD64 文檔在這 因為我這里只是需要用到客戶端&#xff0c;獲取數據而已&#xff0c;所以我只需要下載個MC工具用來數據獲取就可以…

Docker 中部署 MySQL 5.7 并遠程連接 Navicat 的完整指南

個人名片 &#x1f393;作者簡介&#xff1a;java領域優質創作者 &#x1f310;個人主頁&#xff1a;碼農阿豪 &#x1f4de;工作室&#xff1a;新空間代碼工作室&#xff08;提供各種軟件服務&#xff09; &#x1f48c;個人郵箱&#xff1a;[2435024119qq.com] &#x1f4f1…

自己動手造個球平衡機器人

你是否曾對那些能夠精妙地保持平衡的機器設備感到好奇&#xff1f; 從無人機到獨輪平衡車&#xff0c;背后都蘊藏著復雜的控制系統。 今天&#xff0c;我們來介紹一個充滿挑戰與樂趣的項目——制作一個球平衡機器人。這不僅是一個酷炫的擺件&#xff0c;更是一次深入學習機器…

21.Linux HTTPS服務

Linux : HTTPS服務協議傳輸方式端口安全性HTTP明文傳輸80無加密&#xff0c;可被竊聽HTTPS加密傳輸443HTTP SSL/TLS 數據加密&#xff08;防竊聽&#xff09;身份認證&#xff08;防偽裝&#xff09;完整性校驗&#xff08;防篡改&#xff09;OpenSSL 證書操作核心命令命令選項…

SqlSugar 跨方法 操作臨時表

.net項目中時長會有用到臨時表的操作結果如下所示但是在SqlSugar中可能因為會話問題導致臨時表訪問受限 搜索到的方式var conn (SqlConnection)sugarClient.Ado.Connection;if (conn.State ! System.Data.ConnectionState.Open) {conn.Open();}using (var cmd new SqlCommand…

怎么用飛算javaAI實現視頻逐幀截圖并保存

相信很多朋友都遇到過這樣的需求&#xff1a;想從視頻中截取特定幀作為素材&#xff0c;卻苦于沒有簡單易用的工具&#xff0c;要么操作復雜難以精準定位&#xff0c;要么導出的圖片質量不佳。市面上的視頻處理軟件要么功能冗余&#xff0c;要么需要付費才能使用逐幀截取功能&a…

【2】Transformers快速入門:統計語言模型是啥?

一句話看懂統計語言模型核心任務&#xff1a;教電腦判斷一句話 “像不像人話” &#xff08;比如“我愛吃蘋果”? vs “蘋果吃愛我”?&#xff09;1. 早期&#xff1a;死磕語法規則 → 失敗&#xff01; 科學家思路&#xff08;1970年前&#xff09;&#xff1a; 像語文老師一…

[激光原理與應用-230]:物理學主要分支、研究對象、衍生技術及職業方向解析

物理學作為自然科學的核心學科&#xff0c;其分支體系覆蓋從微觀粒子到宏觀宇宙的廣闊領域&#xff0c;并通過交叉融合衍生出眾多前沿技術。以下從經典與現代物理學分支、交叉學科、技術轉化及職業方向四個維度展開分析&#xff1a;一、經典物理學分支&#xff1a;宏觀世界的基…