gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

一文淺析node中如何使用消息隊列

什么是消息隊列?下面本篇文章帶大家了解一下消息隊列的基本概念,介紹一下node中如何使用消息隊列,希望對大家有所幫助!

一文淺析node中如何使用消息隊列

1.消息隊列

什么是消息隊列

消息隊列就是消息的傳輸過程中保存消息的容器,本質是一個隊列(先進先出)

一文淺析node中如何使用消息隊列

消息指的是需要傳輸的數據,可以是一些文本,字符串,或者是對象等信息。

消息隊列則是兩個應用間的通信服務,消息的產生者將數據存放到消息隊列中就可以立即返回,不需要等待消息的接收者應答。即:生產者保證數據插入隊列,誰來取這條消息不需要管。消息的接收者則只專注于接受消息并處理。【相關教程推薦:nodejs視頻教程、編程教學】

一文淺析node中如何使用消息隊列

消息隊列能做什么

  • 解耦 上面介紹了,消息隊列將消息的生產者和消息的接收者分開,彼此都不受影響。

  • 異步 異步就是為了減少請求的響應時間,消息的生產者只需要處理簡單的邏輯,并將數據放到消息隊列中即可返回,復雜的邏輯,比如:數據庫操作,IO操作由消息的接收者處理。

  • 削峰 消息隊列應用在服務時,能將瞬時大量涌入的請求信息保存到消息隊列中,并立即返回。再由消息的接收者根據數據處理請求。

  • 應用場景 游戲活動,秒殺活動,下單等會造成瞬時流量暴增的應用。

2.消息隊列的概念

介紹完消息隊列的基本信息,在開發消息隊列之前先介紹一下消息隊列的一些基本概念~

消息的生產者(producer)與消費者(customer)

上文提到的生產者消費者,提供的是

鏈接,通道與隊列

  • 鏈接(connection):表示服務程序與消息隊列之間的一條鏈接。一個服務程序可以創建多條鏈接

  • 通道(channel):消息隊列鏈接之間的一個通,一個鏈接可以有多個通道

  • 隊列(queue):消息隊列中存放數據的隊列,一個消息隊列服務可以有多個隊列。

總結一下,鏈接,通道隊列之間的關系是這樣的

一文淺析node中如何使用消息隊列

交換機(exchange)

消息隊列發送消息必須要有一個交換機,如果沒有指定則用的是默認的交換機。交換機的作用就是將消息才推到對應的隊列中。消息隊列中一共有4種交換機

  • Direct: 指定隊列模式,消息來了,只發給指定的Queue,其他Queue都收不到。

  • fanout: 廣播模式,消息來了,就會發送給所有的隊列。

  • topic: 模糊匹配模式,通過模糊匹配的方式進行相應轉發。

  • header: 與Direct模式類似。

3.node使用rabbitMQ

安裝rabbitMQ

  • 安裝rabbitMQ可以通過官網上進行下載安裝,傳送門
  • MAC可以直接用brew命令安裝
    brew install rabbitmq
    登錄后復制

  • 安裝完成后啟動rabbitmq服務

一文淺析node中如何使用消息隊列

然后再本地中訪問 http://localhost:15672/ 就可以看到rabbitmq服務的后臺。初始的賬號密碼均為 guest

一文淺析node中如何使用消息隊列

node項目安裝amqplib

amqplib是node中使用消息隊列的一套工具,可以讓我們快速地使用消息隊列

地址:https://www.npmjs.com/package/amqplib

創建生產者

/** product.js 消費者 */   const amqplib = require('amqplib'); const config = require('./config');  const { connectUrl } = config;  (async () => {   const connection = await amqplib.connect(connectUrl);    const channel = await connection.createChannel();   const exchangeName = 'testExchange';   const key = 'testQueue';   const sendMsg = 'hello rabbitmq';        // 知道交換機類型   await channel.assertExchange(exchangeName, 'fanout', {     durable: true,   });        // 指定一個隊列   await channel.assertQueue(key);    for (let i = 0; i < 100; i++) {     channel.publish(exchangeName, key, Buffer.from(`${sendMsg} ${i}`));   }    await channel.close();   await connection.close(); })();
登錄后復制

運行后在后臺可以看到新增了一個有100條消息的隊列

一文淺析node中如何使用消息隊列

創建消費者

/** customer.js 消費者 */  const amqplib = require('amqplib'); const config = require('./config');  const { connectUrl } = config;  (async () => {   let connection = await amqplib.connect(connectUrl);   const exchangeName = 'testExchange';   const key = 'testQueue';   // 創建兩個通道   const channel1 = await connection.createChannel();   const channel2 = await connection.createChannel();   // 指定一個交換機   await channel1.assertExchange(exchangeName, 'fanout', {     durable: true,   });   // 指定一個隊列   await channel1.assertQueue(key);   await channel1.bindQueue(key, exchangeName, key);   channel1.consume(key, (msg) => {     console.log('channel 1', msg.content.toString());   });    await channel2.assertExchange(exchangeName, 'fanout', {     durable: true,   });   await channel2.assertQueue(key);   await channel2.bindQueue(key, exchangeName, key);   channel2.consume(key, (msg) => {     console.log('channel 2', msg.content.toString());   }); })();
登錄后復制

執行后可以看到,兩個通道可以同時工作接收消息

一文淺析node中如何使用消息隊列

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
91看片在线免费观看| 日本xxx免费| 成年人深夜视频| 青青草原播放器| 精品久久免费观看| 中文av字幕在线观看| 在线观看免费的av| 亚洲色图偷拍视频| 一级全黄肉体裸体全过程| 日本高清免费在线视频| 97人人模人人爽人人澡| 国产又爽又黄ai换脸| 可以免费看的黄色网址| 欧美少妇一区二区三区| 亚洲中文字幕无码一区二区三区| 欧美a级免费视频| 99热亚洲精品| 日本女优爱爱视频| 污网站在线免费| 国产高清不卡无码视频| 5月婷婷6月丁香| 国产熟人av一二三区| 在线观看免费av网址| 青青草原网站在线观看| 欧美日韩一道本| 婷婷六月天在线| 视色,视色影院,视色影库,视色网| 99在线免费视频观看| 青青在线视频免费| 最新视频 - x88av| 91猫先生在线| 亚洲天堂av免费在线观看| 国产一区 在线播放| 久草青青在线观看| 4444在线观看| 精品日韩久久久| 久久艹国产精品| 一本色道久久亚洲综合精品蜜桃| 日本xxx免费| 激情五月婷婷久久| 国产手机免费视频| 一区二区久久精品| 久久久久免费精品| 欧美精品卡一卡二| 男人的天堂成人| 天堂中文视频在线| 欧美深夜福利视频| 2022中文字幕| 国产在线观看中文字幕| 日韩精品一区中文字幕| 欧美亚洲黄色片| 国产探花在线观看视频| 欧美精品无码一区二区三区| 青青青在线观看视频| www.com污| 欧美三级理论片| 日韩精品一区中文字幕| 精品国产一区三区| 青青在线免费观看| 看一级黄色录像| 日本在线观看视频一区| 国内自拍第二页| 可以看污的网站| 成年网站免费在线观看| 热久久精品免费视频| 免费在线观看日韩视频| 日韩精品―中文字幕| 国产一二三在线视频| 妞干网视频在线观看| 国产一区二区三区在线免费| 美国av在线播放| 九一免费在线观看| 日韩精品一区二区免费| 欧美视频在线第一页| 国产免费一区二区视频| 久久精品xxx| 亚洲国产精品久久久久婷蜜芽| 国产原创中文在线观看 | www.com黄色片| 999在线免费视频| 亚洲少妇第一页| av在线网址导航| 手机在线观看日韩av| 蜜臀在线免费观看| 国产午夜福利在线播放| 一级黄色香蕉视频| 污污视频在线免费| 免费人成自慰网站| 久久久久久久片| 久久人人爽人人片| 999在线观看视频| 欧美日韩亚洲一二三| 网站在线你懂的| 欧美爱爱视频免费看| 日本成人在线免费视频| 91国内在线播放| 国产成人一区二区三区别| 白嫩少妇丰满一区二区| 亚洲网中文字幕| 国产欧美在线一区| 91亚洲一区二区| 18禁男女爽爽爽午夜网站免费| 福利在线一区二区三区| 国产日韩欧美大片| 久久久精品三级| 丰满少妇久久久| 一起操在线视频| 黄色a级片免费| 黄色a级在线观看| 国产三级日本三级在线播放 | 欧美亚洲色图视频| 美女一区二区三区视频| 免费看毛片的网址| 国产精品亚洲天堂| www.这里只有精品| 乱子伦视频在线看| 精品人妻少妇一区二区| www.成人黄色| 男女啪啪网站视频| 久久成人免费观看| 日韩a级黄色片| 99精品999| 爱爱爱爱免费视频| 黄色一级一级片| 波多野结衣50连登视频| 妞干网在线播放| 国产又爽又黄ai换脸| 精品久久久99| 第一区免费在线观看| 久久综合伊人77777麻豆最新章节| 无罩大乳的熟妇正在播放| 国产黄色激情视频| 日本熟妇人妻xxxx| 日本wwwcom| 欧美中日韩在线| 日韩伦理在线免费观看| 亚洲精品久久久久久久蜜桃臀| 日本特级黄色大片| 91视频成人免费| 免费特级黄色片| 日日碰狠狠添天天爽超碰97| 男的插女的下面视频| 黄色片网址在线观看| 免费无码不卡视频在线观看| 六月丁香激情网| 丁香婷婷激情网| 国产女同无遮挡互慰高潮91| 欧美日韩在线免费观看视频| 黄色小视频大全| 久久综合久久久久| 国产91在线免费| 国产探花在线看| 色哟哟免费网站| 极品美女扒开粉嫩小泬| 女人喷潮完整视频| 亚洲精品免费一区亚洲精品免费精品一区 | 黄色影院一级片| 成 年 人 黄 色 大 片大 全| 污污视频在线免费| 成人免费网站入口| www.日日操| 日本女人高潮视频| 免费观看日韩毛片| 亚洲第一天堂久久| 久久精品xxx| 中文字幕av不卡在线| 日本一二三区视频在线| 欧美一级片中文字幕| 偷拍盗摄高潮叫床对白清晰| 99久久国产综合精品五月天喷水| 虎白女粉嫩尤物福利视频| 国产卡一卡二在线| 无码人妻丰满熟妇区毛片| 992tv成人免费观看| 热久久精品国产| 国产欧美日韩小视频| 天堂视频免费看| 欧美视频免费播放| 国产精品自拍合集| 亚洲制服在线观看| 91插插插插插插插插| 国产精品50p| 丁香六月激情网| 国产高清精品软男同| 亚洲 欧美 另类人妖| 少妇高潮喷水久久久久久久久久| 色撸撸在线观看| 日日躁夜夜躁aaaabbbb| aa在线免费观看| 3d动漫一区二区三区| www国产无套内射com| 国产九九九视频| 在线免费看v片| 一本一道久久a久久综合蜜桃| 亚洲人成色77777| av动漫免费看| 国产精品无码专区av在线播放| 日本在线xxx| 欧美 日韩 国产在线观看| 成年人看的毛片|