RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。寫消息隊列的時候用RabbitMQ比較好,可是寫的時候須要本身封裝下,本身的封裝,就須要對RabbitMQ很是瞭解,而且還須要作大量的測試,可能項目開發比較緊,時間比較多,沒有那麼多的精力和時間去研究去測試,咱們要學會拿來主義,好的東西直接用。EasyNetQ就是操做RabbitMQ一個很好的庫,用起來比較簡單,開源的。閒說:有人說我就是不用,本身寫,就是不用拿來主義,看不起拿來主義,我好想說你從北京到上海有本事不要坐車走過去,不要用手機不要用wifi,本身去發明吧。咱們要站在巨人的肩上,好的東西直接用,當功能實現不了的時候,對其進行研究封裝,節省時間,提升開發效率。巨人是讓你爬上去飛的,不是讓你仰望的。html
用RabbitMQ中的基本方法實現消息隊列,RabbitMq學習。這篇文章介紹了基本的訪問,這裏再也不介紹,下面直接用EasyNetQ操做RabbitMQdom
/// <summary> /// 使用EasyNetQ庫以後的方法 /// </summary> static void EasyNetQMethod() { using (var bus = RabbitHutch.CreateBus("host=localhost;port=32850;username=test;password=test123")) { //模擬生成者 Random rd = new Random(); while (true) { #region 核心代碼,其餘能夠不要 string message = $"你好,{rd.Next(10)}。"; bus.Publish(message, "hello"); #endregion Console.WriteLine("發送信息:{0}", message); //隨機休眠 Thread.Sleep(TimeSpan.FromSeconds(rd.Next(5))); } } }
/// <summary> /// 使用EasyNetQ庫以後的方法 /// </summary> static void EasyNetQMethod() { using (var bus = RabbitHutch.CreateBus("host=localhost;port=32850;username=test;password=test123")) { while (true) { bus.Subscribe<string>("hello", (message) => { Console.WriteLine("接收信息:{0}", message); }); } } }
總結:對比RabbitMQ的學習例子,用EasyNetQ操做RabbitMQ,整個過程很是精簡,很是簡單,可讀性也更強。學習