Windows 下安裝RabbitMQ伺服器及基本配置

來源:互聯網
上載者:User

RabbitMQ是一個在AMQP協議標準基礎上完整的,可複用的企業訊息系統。它遵循Mozilla Public License開源協議,採用 Erlang 實現的工業級的訊息佇列(MQ)伺服器,Rabbit MQ 是建立在Erlang OTP平台上。

裝RabbitMQ伺服器必須首先安裝 Erlang 運行環境。

安裝Erlang

安裝Erlang 時要注意安裝的RabbityMQ 所依賴的Erlang版本,根據RabbitMQ的要求選擇一個版本,這裡我要安裝的RabbitMQ的版本是 3.7.7 ,他依賴的Erlang版本範圍是

19.3.6.4 到 21.0.x,因此我選擇版本是OTP 20.3. Erlang。下載Erlang安裝包後直接安裝就可以了。

設定ERLANG_HOME 環境變數

我這裡是預設安裝所以Erlang的安裝路徑在:

C:\Program Files\erl9.3\bin\erl.exe

點擊確定在系統內容變數裡就增加剛剛添加的ERLANG_HOME

注意:如果之前安裝了Erlang的其他版本,需要卸載後在進行重新安裝和設定。

在開始菜單尋找Erlang,點擊啟動 開啟如下介面,那麼Erlang就安裝成功了。接下來就安裝RabbitMQ。

安裝RabbitMQ

可以在RabbitMQ的官方網站下載最新版本的RabbitMQ伺服器安裝程式,RabbitMQ, 這裡我下載的是官方推薦的最新版本rabbitmq-server-3.7.7.exe, 然後點擊預設安裝。

RabbitMQ安裝好後是作為windows service 運行在後台。

設定RabbitMQ環境變數

RabbitMQ 安裝好後在開始菜單輸入rabbitmq 會看到三個菜單:

這裡的三個菜單是提供控制Windows service的命令,為了能夠在任意Windows命令視窗上操控RabbitMQ服務需要在系統裡加一個環境變數並且配置在系統的PHTH環境變數中。

首先添加一個RABBITQM_SERVER變數:

然後在系統的path變數中配置如下:

這樣就可以在windows administrator啟動的CMD視窗操控RabbitMQ服務了。不需要每次都定位到:
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.7\sbin>

安裝 rabbitmq_management

我們用命令查看一下RabbtitMQ的所有外掛程式:

C:\WINDOWS\system32>rabbitmq-plugins list

看到RabbtitMQ 羅列出來了很多外掛程式

我們用下列命令安裝rabbitmq_management外掛程式,這款外掛程式是可以可視化的方式查看RabbitMQ 伺服器執行個體的狀態,以及操控RabbitMQ伺服器。

C:\WINDOWS\system32>rabbitmq-plugins enable rabbitmq_management

運行完命令後,看到表示安裝成功了。

現在我們在瀏覽器中輸入:http://localhost:15672 可以看到一個登入介面:

這裡可以使用預設帳號guest/guest登入後的介面如下:

在瀏覽器中輸入 http://localhost:15672/api/ 就可以看到 RabbitMQ Management HTTP API 文檔,如:

這樣就可以查看RabbitMQ server執行個體狀態的相關資訊了。

管理rabbitmq_management的使用者

用命令rabbitmqctl list_users 查看一下現rabbitmq_management註冊使用者

發現現在只有一個使用者guest,並且它的tag是administrator.

那麼在命令列下建立一個使用者,建立使用者的命令合是:

rabbitmqctl add_user [username] [password]

現在建立一個username=rabbit1 password=rabbit1的使用者, 命令如下:

rabbitmqctl add_user rabbit1 rabbit1

建立成功了:

現在看下有多少使用者,跑一下命令:

rabbitmqctl list_users

發現使用者列表裡多了一個使用者 rabbit1,但是tag是空的。使用命令給rabbit設定tag,設定tag的命令格式:

rabbitmqctl set_user_tag [tag1] [tag2] ...

一次可以給一個使用者佈建多個tag,也可以設定一個

現在rabbit1 有兩個tag了一個是administrator ,一個是none.

有5個tag可供選擇,分別是:administrator ,monitoring,policymaker,management和none 有興趣的同學可以到這裡瞭解各個tag的含義,其實這裡的tag代表的是許可權,administrator是最高許可權,none表示不能訪問,這裡administrator和none的組合,許可權應該是向高看齊,忽略none,用的是administrator的許可權。我們用rabbit1/rabbit1 登入rabbitmq_management。

其實有了rabbitmq_management這個可視化外掛程式,很多事情都可以在這個外掛程式裡幹,包括建立使用者,建立交換器(Exchange)和建立隊列(Queque)。

關於Rabbit的在windows下的基本配置就告一段落,關於更多的更進階的配置,可以參考官網,有了rabbitmq_management 外掛程式確實方便了不少。下面就開始建立用戶端進行測試了。

測試

建立兩個.Net Core Console 類型的應用程式,一個用於發送訊息,一個用於接收訊息。

1. Send 端代碼:
using System;using System.Text;using RabbitMQ.Client;namespace Q.Demo.Send{    class Program    {        static void Main(string[] args)        {            var factory = new ConnectionFactory() { HostName = "localhost" };            using (var connection = factory.CreateConnection())            using (var channel = connection.CreateModel())            {                channel.QueueDeclare(queue: "hello",                    durable: false,                    exclusive: false,                    autoDelete: false,                    arguments: null);                while (true)                {                    var input = Console.ReadLine();                    string message = input;                    var body = Encoding.UTF8.GetBytes(message);                   channel.BasicPublish(exchange: "",                    routingKey: "hello",                    basicProperties: null,                    body: body);                Console.WriteLine(" [x] Sent {0}", message);                }                            }            Console.WriteLine(" Press [enter] to exit.");            Console.ReadLine();        }    }}
2.Receive端代碼:
using System;using System.Text;using RabbitMQ.Client;using RabbitMQ.Client.Events;namespace Q.Demo.Receive{    class Program    {        static void Main(string[] args)        {            var factory = new ConnectionFactory() { HostName = "localhost" };            using (var connection = factory.CreateConnection())            using (var channel = connection.CreateModel())            {                channel.QueueDeclare(queue: "hello",                    durable: false,                    exclusive: false,                    autoDelete: false,                    arguments: null);                var consumer = new EventingBasicConsumer(channel);                consumer.Received += (model, ea) =>                {                    var body = ea.Body;                    var message = Encoding.UTF8.GetString(body);                    Console.WriteLine(" [x] Received {0}", message);                };                channel.BasicConsume(queue: "hello",                    autoAck: true,                    consumer: consumer);                Console.WriteLine(" Press [enter] to exit.");                Console.ReadLine();            }        }    }}

運行輸入訊息效果如下:

 

總結:

關於RabbitMQ在windows 下的安裝和基本設定步驟:

1.安裝對應版本的Erlang 並設定環境變數

2.安裝RabbitMQ

3.設定環境變數

4.安裝外掛程式rabbitmq_management

5.有了外掛程式rabbitmq_management很多事情就可以在這個可視化外掛程式中來完成了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.