RabbitMQ基礎篇

介紹

RabbitMQ 是一個消息中間件:它接收並轉發消息。您能夠把它想象爲一個郵局:當您把須要寄出的郵件投遞到郵箱,郵差最終會把郵件送給您的收件人。在這個比喻中,RabbitMQ 就是一個郵箱,也能夠理解成郵局和郵遞員。html

RabbitMQ 和郵局的主要區別在於它不處理紙張,而是接收、存儲和轉發二進制數據塊 - 消息shell

RabbitMQ 和消息傳遞一般使用一些術語。windows

生產 的意思無非就是發送。發送消息的程序就是一個 生產者瀏覽器

Producer

隊列 就是 RabbitMQ 內部「郵箱」的名稱。雖然消息流經 RabbitMQ 和您的應用程序,但它們只能存儲在 隊列 中。隊列 只受主機的內存和磁盤的限制,它本質上就是一個很大的消息緩衝區。多個 生產者 能夠發送消息到一個隊列,而且多個 消費者 能夠嘗試從一個 隊列 接收數據。這就是咱們表明隊列的方式:spa

Queue

消費 與接收有類似的含義,等待接收消息的程序就是一個 消費者插件

Consumer

注意:生產者、消費者和中間件不是必須部署在同一主機上,實際上在大多數應用程序中它們也不是這樣的。3d

"Hello World"

使用 .NET / C#Clientcode

在教程的這一部分,咱們將用 C# 編寫兩個程序:一個發送單條消息的生產者,以及接收消息並將其打印出來的消費者。咱們將忽略 .NET 客戶端 API 中的一些細節,專一於更簡單的開始。這是一個消息傳遞的「Hello World」。server

在下圖中,P是咱們的生產者,C是咱們的消費者。中間的盒子是隊列 - RabbitMQ 表明消費者保存的消息緩衝區。htm

.NET 客戶端庫

RabbitMQ 支持多種協議,本教程使用AMQP 0-9-1,它是一種開放的、通用的消息傳遞協議。RabbitMQ 提供了一些針對不一樣 語言環境的客戶端,咱們將使用 RabbitMQ 提供的 .NET 客戶端。

客戶端支持 .NET Core 以及 .NET Framework 4.5.1+。本教程將使用 .NET Core,所以您須要確保客戶端已 安裝 而且路徑添加到PATH系統變量。

您也可使用 .NET Framework 來完成本教程,但設置步驟會有所不一樣。

RabbitMQ .NET 客戶端 5.0 及更高版本經過 nuget 發佈。

本教程假定您在 Windows 上使用 PowerShell。在 MacOS 和 Linux 上,幾乎全部 shell 也均可以正常工做。

 

下載和安裝RabbitMQ

一、RabbitMQ須要安裝64位支持的Erlang for Windows版本。有一個用於ErlangWindows安裝程序重要提示:必須使用管理賬戶運行Erlang安裝程序,不然RabbitMQ安裝程序所需的註冊表項將不存在。

而後,運行RabbitMQ安裝程序rabbitmq-server-3.7.9.exe它將RabbitMQ安裝爲Windows服務,並使用默認配置啓動它。

RabbitMQ下載地址:http://www.rabbitmq.com/download.html

Erlang for Windows下載地址:http://www.erlang.org/downloads

 

二、使用管理運行otp_win64_21.1.exe安裝程序

使用系統默認便可,直接點擊Next。選擇安裝路徑後直接Next:

等待安裝完成便可。

三、安裝rabbitmq-server-3.7.9.exe,直接Next:

選擇安裝路徑,而後Next,等待安裝完成便可:

安裝完成後檢查服務中是否存在RabbitMQ的服務,RabbitMQ安裝後默認爲windows服務:

四、安裝可視化管理插件,使用cmd定位到你的安裝目下,命令以下:

rabbitmq-plugins enable rabbitmq_management

出現以下提示後在瀏覽器中訪問:http://localhost:15672/,這裏暫時沒法登錄,下面建立建立用戶帳號後纔可登陸

五、建立用戶,密碼,綁定角色

一、查看已有用戶及用戶的角色:

rabbitmqctl.bat list_users

二、建立用戶:

rabbitmqctl add_user 用戶名 密碼

在次查看用戶列表,會多出剛新建的admin用戶

三、設置用戶帳號權限,以剛建立的用戶帳號admin爲例設置爲超級管理員。 命令以下:

rabbitmqctl set_user_tags admin administrator

查看用戶列表 能夠看出多了管理員權限,訪問:http://localhost:15672/  使用剛纔建立的用戶帳號便可登陸。

其餘相關命令以下:

//設置用戶權限
rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP

//查看(指定hostpath)全部用戶的權限信息
rabbitmqctl  list_permissions  [-p  VHostPath]

//查看指定用戶的權限信息
rabbitmqctl  list_user_permissions  User

// 清除用戶的權限信息
rabbitmqctl  clear_permissions  [-p VHostPath]  User

//刪除用戶
rabbitmqctl delete_user Username

//修改用戶密碼
rabbitmqctl change_password 用戶名 新密碼

基礎使用

參考園裏博文:http://www.javashuo.com/article/p-yplqyfft-o.html

報錯信息收集

一、報錯信息:None of the specified endpoints were reachable,該錯誤是使用的用戶帳號沒有相應Virtual Hosts權限。登陸RabbitMQ查看用戶列表 沒有權限訪問

解決方案:點擊列表中的admin 進入以下圖所所示界面,設置權限保持默認便可。檢查Tags是不是administrator 

相關文章
相關標籤/搜索