在現在的項目中,消息隊列的使用比較的頻繁,消息隊列的種類也較多,如:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。消息隊列中間件是分布式系統中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題。實現高性能,高可用,可伸縮和最終一致性架構。是大型分布式系統不可缺少的中間件。
其中RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務器是用Erlang語言編寫的,而集群和故障轉移是構建在開放電信平臺框架上的。所有主要的編程語言均有與代理接口通訊的客戶端庫。
目前是.NET使用率比較高的消息隊列;
其中EasyNetQ是.NET上RabbitMQ的領先客戶端API,在NuGet.org上有超過400萬次下載。這是一個開放源代碼項目。
圖片
EasyNetQ是為了提供一個盡可能簡潔的適用與RabbitMQ的.NET類庫。為了實現這些目標,EasyNetQ提供一種自認為你會在.NET下使用RabbitMQ的視圖。為了保持使用靈活性,簡單起見,EasyNetQ強制使用了一些簡單的約定。包括如下:
盡可能簡化在.NET上使用RabbitMQ的工作。
要連接到RabbitMQ代理...
var bus = RabbitHutch.CreateBus("host=localhost");
要發布消息...
bus.Publish(message);
訂閱消息...
bus.Subscribe<MyMessage>("my_subscription_id", msg => Console.WriteLine(msg.Text));
遠程過程調用...
var request = new TestRequestMessage {Text = "Hello from the client! "};bus.Request<TestRequestMessage, TestResponseMessage>(request, response => Console.WriteLine("Got response: '{0}'", response.Text));
RPC服務器...
bus.Respond<TestRequestMessage, TestResponseMessage>(request => new TestResponseMessage{ Text = request.Text + " all done!" });
更多功能見:https://github.com/EasyNetQ/EasyNetQ
本文鏈接:http://www.tebozhan.com/showinfo-26-82955-0.html簡單易用的.NET免費開源RabbitMQ操作組件EasyNetQ
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: JavaScript 命名約定優秀實踐