日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

三分鐘學(xué)會(huì)在 RabbitMQ 中實(shí)現(xiàn)發(fā)布訂閱模式

來源: 責(zé)編: 時(shí)間:2024-03-28 09:28:45 234觀看
導(dǎo)讀在這個(gè)充滿挑戰(zhàn)和收獲的60天學(xué)習(xí)之旅中,你將迅速提升成為一名全棧工程師。專注于Spring Boot框架,我們將深入研究高級特性,從項(xiàng)目初始化到微服務(wù)架構(gòu),再到性能優(yōu)化和持續(xù)集成部署。無論你是初學(xué)者還是有一定經(jīng)驗(yàn)的開發(fā)者,

在這個(gè)充滿挑戰(zhàn)和收獲的60天學(xué)習(xí)之旅中,你將迅速提升成為一名全棧工程師。專注于Spring Boot框架,我們將深入研究高級特性,從項(xiàng)目初始化到微服務(wù)架構(gòu),再到性能優(yōu)化和持續(xù)集成部署。無論你是初學(xué)者還是有一定經(jīng)驗(yàn)的開發(fā)者,這個(gè)專題都將帶你穿越從零到全面掌握Spring Boot的學(xué)習(xí)曲線。oOo28資訊網(wǎng)——每日最新資訊28at.com

oOo28資訊網(wǎng)——每日最新資訊28at.com

Day 32 ~ Springboot3.1.x|3分鐘學(xué)會(huì)在 RabbitMQ 中實(shí)現(xiàn)發(fā)布訂閱模式oOo28資訊網(wǎng)——每日最新資訊28at.com

實(shí)現(xiàn)發(fā)布與訂閱消息模式

發(fā)布-訂閱模式是一種消息傳遞方式,其中發(fā)送者(發(fā)布者)不會(huì)將消息直接發(fā)送到特定的接收者(訂閱者)。發(fā)布者類別定義了哪些訂閱者因?yàn)橛嗛喺咂ヅ淞税l(fā)布者的類別而接收消息。oOo28資訊網(wǎng)——每日最新資訊28at.com

以下是使用RabbitMQ實(shí)現(xiàn)發(fā)布-訂閱模式的一種例子,我們將使用RabbitMQ的Fanout Exchange。oOo28資訊網(wǎng)——每日最新資訊28at.com

Producer

import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.nio.charset.StandardCharsets;public class EmitLog {  private static final String EXCHANGE_NAME = "logs";  public static void main(String[] argv) throws Exception {    ConnectionFactory factory = new ConnectionFactory();    factory.setHost("localhost");    try (Connection connection = factory.newConnection();         Channel channel = connection.createChannel()) {        channel.exchangeDeclare(EXCHANGE_NAME, "fanout");        String message = "Log message...";        channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes(StandardCharsets.UTF_8));        System.out.println("Sent '" + message + "'");    }  }}

在上述代碼的channel.exchangeDeclare(EXCHANGE_NAME, "fanout"),我們聲明一個(gè)名為"log"的exchange,同時(shí)我們定義其類型為"fanout",意味著它會(huì)將接收到的所有消息廣播給所有它所知道的隊(duì)列。oOo28資訊網(wǎng)——每日最新資訊28at.com

Consumer

每一個(gè)訂閱者都需要擁有一個(gè)queue,因此,我們需要在客戶端中創(chuàng)建queue。oOo28資訊網(wǎng)——每日最新資訊28at.com

import com.rabbitmq.client.*;import java.io.IOException;public class ReceiveLogs {  private static final String EXCHANGE_NAME = "logs";  public static void main(String[] argv) throws Exception {    ConnectionFactory factory = new ConnectionFactory();    factory.setHost("localhost");    Connection connection = factory.newConnection();    Channel channel = connection.createChannel();    channel.exchangeDeclare(EXCHANGE_NAME, "fanout");    String queueName = channel.queueDeclare().getQueue();    channel.queueBind(queueName, EXCHANGE_NAME, "");    DeliverCallback deliverCallback = (consumerTag, delivery) -> {        String message = new String(delivery.getBody(), StandardCharsets.UTF_8);        System.out.println("Received '" + message + "'");    };    channel.basicConsume(queueName, true, deliverCallback, consumerTag -> { });  }}

在這個(gè)例子中,我們聲明一個(gè)新的queue,并將其與"logs"的exchange綁定。然后我們定義了消息的接收以及處理方式。oOo28資訊網(wǎng)——每日最新資訊28at.com

處理消息發(fā)送失敗的情況

在使用消息中間件的過程中,消息發(fā)送失敗是無法避免的情況。因此,我們需要對此進(jìn)行正確的處理以避免因此而導(dǎo)致的系統(tǒng)問題。oOo28資訊網(wǎng)——每日最新資訊28at.com

對于消息發(fā)送失敗的處理,有以下幾種常用的方案:oOo28資訊網(wǎng)——每日最新資訊28at.com

  • 重試: 對于有些暫時(shí)的問題,比如網(wǎng)絡(luò)波動(dòng),可以通過簡單的重試來解決。
  • 消息持久化:將消息存儲在某處(例如數(shù)據(jù)庫),只有當(dāng)消息成功發(fā)送后,再刪除它。
  • 死信隊(duì)列:把無法處理的消息放入"死信隊(duì)列",然后由專門的消費(fèi)者來進(jìn)行處理。

RabbitMQ中的消息確認(rèn)(publisher confirms)和消費(fèi)者應(yīng)答(Consumer Acknowledgements)就是為了解決此類問題。oOo28資訊網(wǎng)——每日最新資訊28at.com

ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");try (Connection connection = factory.newConnection()) {    Channel channel = connection.createChannel();    String queueName = "test";    String message = "Hello world";    try {        channel.queueDeclare(queueName, false, false, false, null);        channel.confirmSelect();        channel.basicPublish("", queueName, null, message.getBytes());        if (!channel.waitForConfirms()) {            System.out.println("消息發(fā)送失敗");        }    } catch (Exception e) {        System.out.println("錯(cuò)誤: " + e.getMessage());    }}

上述代碼中執(zhí)行channel.confirmSelect();后,當(dāng)前channel被設(shè)置為publisher confirm模式。在此模式下,當(dāng)消息被RabbitMQ成功接收后,會(huì)發(fā)送一個(gè)確認(rèn)給生產(chǎn)者。如果RabbitMQ沒有發(fā)送確認(rèn),那么生產(chǎn)者可以認(rèn)定該消息發(fā)送失敗。oOo28資訊網(wǎng)——每日最新資訊28at.com

結(jié)論:掌握發(fā)布-訂閱模式和消息發(fā)送失敗處理策略,對于掌握消息隊(duì)列的使用至關(guān)重要,可為系統(tǒng)的穩(wěn)定性和擴(kuò)展性提供保障。oOo28資訊網(wǎng)——每日最新資訊28at.com

oOo28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-79990-0.html三分鐘學(xué)會(huì)在 RabbitMQ 中實(shí)現(xiàn)發(fā)布訂閱模式

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: SpringCloud項(xiàng)目開發(fā)中實(shí)用技巧總結(jié)

下一篇: 2024 年,這些 VS Code 插件可以卸載了!

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 5月iOS設(shè)備好評榜:iPhone 14僅排第43?

    來到新的一月,安兔兔的各個(gè)榜單又重新匯總了數(shù)據(jù),像安卓陣營的榜單都有著比較大的變動(dòng),不過iOS由于設(shè)備的更新?lián)Q代并沒有那么快,所以相對來說變化并不大,特別是iOS好評榜,老款設(shè)
  • K8S | Service服務(wù)發(fā)現(xiàn)

    一、背景在微服務(wù)架構(gòu)中,這里以開發(fā)環(huán)境「Dev」為基礎(chǔ)來描述,在K8S集群中通常會(huì)開放:路由網(wǎng)關(guān)、注冊中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問;圖片對于測試「Tes」環(huán)境或者
  • 分布式系統(tǒng)中的CAP理論,面試必問,你理解了嘛?

    對于剛剛接觸分布式系統(tǒng)的小伙伴們來說,一提起分布式系統(tǒng),就感覺高大上,深不可測。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統(tǒng)
  • 十個(gè)簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強(qiáng)大而靈活的功能,用于修改或增強(qiáng)函數(shù)或類的行為。裝飾器本質(zhì)上是一個(gè)函數(shù),它接受另一個(gè)函數(shù)或類作為參數(shù),并返回一個(gè)新的函數(shù)或類。它們通常用
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動(dòng)設(shè)備上有一個(gè)固定元素,當(dāng)激活虛擬鍵盤時(shí),該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認(rèn)行為,在本文中,我們將探討這個(gè)問題、為什么會(huì)發(fā)生
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • iQOO Neo8系列或定檔5月23日:首發(fā)天璣9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列機(jī)型,不僅搭載了天璣9000+,而且是同價(jià)位唯一一款天璣9000+直屏旗艦,一經(jīng)上市便受到了用戶的廣泛關(guān)注。在時(shí)隔半年后,
  • 與兆芯合作 聯(lián)想推出全新旗艦版筆記本電腦開天N7系列

    聯(lián)想與兆芯合作推出全新聯(lián)想旗艦版筆記本電腦開天 N7系列。這個(gè)系列采用兆芯KX-6640MA處理器平臺,KX-6640MA 處理器是采用了陸家嘴架構(gòu),16nm 工藝,4 核 4 線
  • 2021中國國際消費(fèi)電子博覽會(huì)與青島國際軟件融合創(chuàng)新博覽會(huì)新聞發(fā)布會(huì)隆重舉行

    9月18日,2021中國國際消費(fèi)電子博覽會(huì)與青島國際軟件融合創(chuàng)新博覽會(huì)新聞發(fā)布會(huì)在青島國際新聞中心隆重舉行。發(fā)布會(huì)上青島市政府領(lǐng)導(dǎo)聯(lián)袂出席,對本次雙展會(huì)情
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲欧美日本国产专区一区| 一区二区三区我不卡| 欧美成人精品三级在线观看| 欧美高清一区| 欧美性猛交一区二区三区精品| 国产精品国色综合久久| 国产亚洲综合精品| 91久久精品美女高潮| 亚洲精品人人| 亚洲欧美日韩一区二区| 久久亚洲国产精品一区二区 | 欧美久久久久中文字幕| 国产精品女人网站| 亚洲成色www8888| 亚洲神马久久| 久久影院午夜论| 欧美无乱码久久久免费午夜一区| 国产一区二区久久久| 日韩一级黄色大片| 久久精品毛片| 欧美色播在线播放| 韩国三级电影一区二区| 99这里只有久久精品视频| 久久福利影视| 国产精品成人观看视频免费| 在线看日韩av| 欧美一区二区三区免费观看视频| 欧美精品大片| 精品成人国产| 午夜精品视频在线观看| 欧美激情一区二区在线| 国产在线国偷精品产拍免费yy| 一本色道久久综合亚洲精品高清| 久久伊伊香蕉| 国产日韩1区| 亚洲激情一区| 久久精品国产精品| 国产精品久久久久久久久久久久| 亚洲人成小说网站色在线| 久久经典综合| 国产精品视频999| 99视频一区二区| 欧美成年人视频| 激情一区二区三区| 欧美一区成人| 欧美视频在线免费| 亚洲精品视频在线观看网站| 久久久久久久综合狠狠综合| 国产欧美日韩中文字幕在线| 中文日韩在线视频| 欧美日韩高清在线播放| 亚洲丰满在线| 久久久久久久欧美精品| 国产美女精品视频免费观看| 亚洲少妇一区| 欧美日韩成人网| 亚洲人成久久| 美女国产精品| 伊人久久大香线| 久久久亚洲欧洲日产国码αv| 国产日韩欧美综合一区| 香蕉视频成人在线观看| 国产精品入口麻豆原神| 亚洲天堂成人在线视频| 欧美日韩一区二区在线播放| 亚洲精品免费在线| 欧美国产日韩视频| 亚洲国产中文字幕在线观看| 蜜臀久久99精品久久久画质超高清| 极品日韩av| 久久久久综合网| 激情五月婷婷综合| 久久综合国产精品| 精品电影在线观看| 快射av在线播放一区| 在线不卡亚洲| 老鸭窝毛片一区二区三区| 在线日韩av片| 欧美ed2k| 亚洲卡通欧美制服中文| 欧美日韩大片| 亚洲视频电影图片偷拍一区| 国产精品igao视频网网址不卡日韩| 一区二区三区欧美成人| 国产精品国产三级国产aⅴ浪潮 | 亚洲第一伊人| 欧美成人午夜剧场免费观看| 亚洲精品国产拍免费91在线| 欧美日韩精品一区| 亚洲午夜影视影院在线观看| 国产精品久久午夜| 欧美一区成人| 樱花yy私人影院亚洲| 欧美成年视频| 日韩视频免费观看高清在线视频 | 久久人人九九| 亚洲激情国产| 欧美精品一区二区精品网| 一区二区三区日韩欧美精品| 国产精品乱码久久久久久| 先锋资源久久| 一区二区在线免费观看| 欧美成人午夜77777| 9久草视频在线视频精品| 国产精品乱码人人做人人爱| 久久久久久久欧美精品| 亚洲日本中文字幕免费在线不卡| 欧美日韩在线视频观看| 午夜视频在线观看一区二区| 曰本成人黄色| 欧美日韩亚洲成人| 欧美在线999| 亚洲国产精品精华液网站| 欧美日韩精品欧美日韩精品| 午夜久久久久久| 亚洲国产va精品久久久不卡综合| 欧美日韩www| 欧美一区亚洲| 亚洲精品欧美| 国产日产欧产精品推荐色| 老司机aⅴ在线精品导航| 日韩视频在线免费观看| 国产精品一区二区三区乱码 | 国产综合久久| 欧美精品日韩三级| 午夜精品久久99蜜桃的功能介绍| 伊人婷婷欧美激情| 国产精品ⅴa在线观看h| 久久久久国产精品厨房| 夜夜狂射影院欧美极品| 国产综合视频| 欧美紧缚bdsm在线视频| 羞羞视频在线观看欧美| 亚洲人精品午夜在线观看| 国产欧美精品日韩精品| 欧美国产日韩亚洲一区| 欧美在线地址| 99国产精品视频免费观看| 国产一区二区黄| 欧美日韩亚洲一区二区| 久久久欧美精品sm网站| 亚洲视频 欧洲视频| 亚洲高清精品中出| 国产美女精品| 欧美日韩三级一区二区| 久久在线观看视频| 午夜久久tv| 亚洲免费精品| 尤物99国产成人精品视频| 国产精品美女久久久久久久| 欧美黑人国产人伦爽爽爽| 久久成人综合网| 在线亚洲激情| 亚洲国产一区二区三区青草影视| 国产欧美精品一区| 欧美日韩综合在线免费观看| 老司机精品视频网站| 性视频1819p久久| 日韩亚洲一区二区| 亚洲电影在线看| 国产手机视频一区二区| 国产精品久久97| 欧美理论电影在线观看| 美女图片一区二区| 久久精品一区二区| 亚洲欧美综合另类中字| 一区二区三区精品视频| 亚洲人成在线播放| 在线观看亚洲a| 国产一区日韩一区| 国产精一区二区三区| 欧美日韩综合网| 欧美激情片在线观看| 毛片基地黄久久久久久天堂| 久久精品一二三| 欧美亚洲一区| 亚洲男女自偷自拍图片另类| 一区二区三区国产在线观看| 亚洲精品日韩在线观看| 亚洲黄色三级| 亚洲国产精品www| 在线成人h网| 樱花yy私人影院亚洲| 韩曰欧美视频免费观看| 国产一区二区丝袜高跟鞋图片 | 国产一区二区三区日韩欧美| 国产美女扒开尿口久久久| 国产精品亚发布| 国产精品一区二区三区四区五区| 国产精品久久久久久久久动漫| 欧美小视频在线观看| 欧美四级剧情无删版影片| 欧美日韩在线播放一区二区| 欧美日韩a区| 欧美日韩中文精品| 欧美日韩在线不卡一区| 欧美视频官网| 国产精品美女久久久久久2018| 国产精品久久久久永久免费观看 | 翔田千里一区二区| 午夜一区不卡| 欧美中日韩免费视频| 久久久99国产精品免费| 久久米奇亚洲|