RabbitMq 簡介
RabbitMq 是一個訊息代理,允許在不同服務之間發送和接收訊息。它是一個實作高階訊息佇列協定(AMQP)的訊息代理程式。用 Erlang 程式語言寫成。
安裝 RabbitMq
RabbitMq 可以使用各自的套件管理器安裝在不同的作業系統上。 RabbitMQ 需要預先安裝 Erlang/OTP,更多資訊請參閱官方文件。
- Linux
sudo apt-get install rabbitmq-server
- 麥克
brew install rabbitmq
安裝後,我們可以使用以下命令啟動 RabbitMq 伺服器:
sudo rabbitmq-server
伺服器啟動後,我們可以使用預設連接埠 5672 從我們的應用程式存取rabbitmq。
要啟用 RabbitMq 管理控制台,我們可以執行以下命令:
sudo rabbitmq-plugins enable rabbitmq_management
我們可以透過瀏覽器存取http://localhost:15672/來存取RabbitMq管理控制台。預設使用者名稱和密碼是 guest。
使用 NodeJs 設定 RabbitMq
要從 NodeJs 與 RabbitMq 交互,我們可以使用 amqplib 函式庫。我們可以使用以下命令安裝該程式庫:
npm install amqplib
要從 NodeJs 連接到 RabbitMq 並建立與 RabbitMq 互動的通道,我們可以使用以下程式碼:
const amqp = require("amqplib"); const connect = async (url) => { const connection = await amqp.connect(url); const channel = await connection.createChannel(); return channel; }; connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.close(); process.exit(0); });
現在,我們有了一個與 RabbitMq 互動的通道。我們可以使用此通道從 RabbitMq 發送和接收訊息。讓我們將佇列命名為 mq-test-queue 並向佇列發送訊息。
connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.assertQueue("mq-test-queue"); console.log("Queue created"); channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!")); console.log("Message sent"); });
我們建立了一個佇列 mq-test-queue 並發送了一條訊息 Hello World!到隊列中。為了建立隊列,我們使用了assertQueue方法,為了向隊列發送訊息,我們使用了sendToQueue方法。
要從佇列接收訊息,我們可以使用consume方法。
connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.assertQueue("mq-test-queue"); console.log("Queue created"); channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!")); console.log("Message sent"); channel.consume("mq-test-queue", (msg) => { console.log("Message received", msg.content.toString()); }); });
consum方法接受一個回呼函數,並將訊息物件傳遞給回呼函數,以使用msg.content.toString()存取訊息內容。
消費訊息後,我們需要ack或nack訊息以將訊息從佇列中刪除。我們可以使用 ack 方法來確認訊息,使用 nack 方法來拒絕訊息。
對於這個例子,我們將在消費消息後確認訊息。
const amqp = require("amqplib"); const connect = async (url) => { const connection = await amqp.connect(url); const channel = await connection.createChannel(); return channel; }; connect("amqp://localhost:5672").then((channel) => { console.log("Connected to RabbitMQ"); channel.assertQueue("mq-test-queue"); console.log("Queue created"); channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!")); console.log("Message sent"); channel.consume("mq-test-queue", (msg) => { console.log("Message received", msg.content.toString()); channel.ack(msg); }); });
我們可以看到訊息從佇列中發送和接收成功。使用rabbitmq管理控制台。
結論
在本文中,我們學習如何使用 amqplib 函式庫設定 RabbitMq 並從 NodeJs 與 RabbitMq 互動。我們創建了一個隊列,向隊列發送了一條訊息,並從隊列中接收了一條訊息。
以上是使用 NodeJs 開始使用 RabbitMq的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)