国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

RabbitMQ消息隊列安裝和配置以及推送消息

2019-11-17 01:44:10
字體:
來源:轉載
供稿:網友

RabbitMQ消息隊列安裝和配置以及推送消息

好久沒有寫了,最近項目用到RabbitMQ,找了一些資料試驗,最后終于成功了,把安裝配置的步驟分享給大家。

一、Erlang安裝具體過程:

1.雙擊otp_win32_R16801.exe(不同版本可能命名字不一樣),選擇next

2.默認安裝在C盤,建議程序安裝在非系統盤比如D盤(如果安裝在C盤可能會出現一些權限問題),修改好安裝路徑后,選next:

3.進入安裝程序,選擇install,即可完成安裝。

配置環境變量:在系統變量下添加 變量名:ERLANG_HOME,變量值:C:/PRogram Files (x86)/erl6.1

二、安裝rabbitMQrabbitmq-server-3.3.5.exe安裝完成增加環境變量,雙擊path,在其后面增加:;C:/Program Files (x86)/RabbitMQ Server/rabbitmq_server-3.3.5/sbin

啟動start

cmd進到sbin目錄,輸入rabbitmq-service啟動

或是直接找到rabbitMQ安裝目錄下C:/Program Files (x86)/RabbitMQ Server/rabbitmq_server-3.3.5/sbin

打開瀏覽器登錄http://localhost:15672進入監視頁面說明配置成功,用戶名和密碼:guest

配置成功以后就是發送消息,采用Exchange。

Rabbit的核心組件包含Queue(消息隊列)和Exchanges兩部分,Exchange的主要部分就是對信息進行路由,通過將消息隊列綁定到Exchange上,則可以實現訂閱形式的消息發布及Publish/Subscribe在這種模式下消息發布者只需要將信息發布到相應的Exchange中,而Exchange則自動將信息分發到不同的Queue當中。

在.Net環境下有基于RabbitMQ有很多有API的選擇,最后選擇了比較簡單的EasyNetQ(http://easynetq.com/)

    /// <summary>    /// 消息服務器連接器    /// </summary>    public class BusBuilder    {        public static IBus CreateMessageBus()        {            //消息服務器連接字符串                     string connString = "host=172.17.186.50:5672;virtualHost=rb;username=admin;passWord=123";            return RabbitHutch.CreateBus(connString);           // return RabbitHutch.CreateBus(connectionString.ConnectionString);        }    }
 /// <summary>        /// 發送消息        /// </summary>        public static void Publish(Message msg)        {            //// 創建消息bus            IBus bus = BusBuilder.CreateMessageBus();            try            {                using (var publishChannel = bus.OpenPublishChannel())   //創建消息管道                 {                    publishChannel.Publish(msg, x => x.WithTopic(msg.MessageRouter));  //通過管道發送消息                 }            }            catch (EasyNetQException ex)            {                //處理連接消息服務器異常                 // MessageHelper.WriteFuntionExceptionLog("Publish", ex.Message + " | " + ex.StackTrace);            }            bus.Dispose();//與數據庫connection類似,使用后記得銷毀bus對象        }
    /// <summary>        /// 接收消息        /// </summary>        /// <param name="msg"></param>        public static void Subscribe(Message msg, iprocessMessage ipro)        {            //// 創建消息bus            IBus bus = BusBuilder.CreateMessageBus();            try            {                bus.Subscribe<Message>(msg.MessageID, message => ipro.ProcessMsg(message), x => x.WithTopic(msg.MessageRouter).WithArgument("x-ha-policy", "all"));            }            catch (EasyNetQException ex)            {                //處理連接消息服務器異常               //  MessageHelper.WriteFuntionExceptionLog("Subscribe", ex.Message + " | " + ex.StackTrace);            }        }

添加虛擬主機

添加用戶

執行代碼就會自動建立Exchanges,名字是根據項目名來的

點擊新建的Exchanges進入新建queue

最后調用接口測試發送,代碼如下:

  protected void Button1_Click(object sender, EventArgs e)        {            MQ.Message msg = new MQ.Message();            msg.MessageID = "testkey";            msg.MessageBody = "發送測試";            msg.MessageTitle = "hello world";            msg.MessageRouter = "testKey";            MQ.MQHelper.Publish(msg);                    }
msg.MessageRouter = "testKey"——這句配置很重要,取決于上一步的Routing Key.

推送消息成功!

源碼下載:http://pan.baidu.com/s/1sjExnWh


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金阳县| 炎陵县| 新乐市| 武冈市| 松阳县| 辽宁省| 封开县| 兰西县| 和龙市| 泰安市| 泰顺县| 嵊州市| 西和县| 孝昌县| 达孜县| 平遥县| 女性| 南华县| 凤山市| 鄂州市| 闽清县| 长岛县| 格尔木市| 姚安县| 瑞安市| 文昌市| 瑞昌市| 江孜县| 贺兰县| 绍兴县| 武定县| 长丰县| 修武县| 昭苏县| 澄城县| 西盟| 华坪县| 泽普县| 商洛市| 老河口市| 通江县|