rabbitmq 是乙個非常流行的,開源的,使用erlang語言編寫的框架,通常在電信級平台
中作為訊息中介軟體使用,rabbitmq實現了高階的amqp協議用於實現程序間,應用程式間,伺服器之間的訊息互動,而且它還有乙個非常??的特性,你可以使用自定義外掛程式來擴充套件rabbitmq的功能,而且它還支援多協議,高效能,高可靠,集群以及高可用佇列。
建立佇列的方式也多種多樣,你可以編碼建立,也可以通過管理員使用者介面,甚至通過 powershell 進行佇列建立。
當你在用 rabbitmq 時,你要理解下面兩個術語
現在 erlang 和 rabbitmq 已經成功安裝到你的windows上,如果想和rabbitmq server
進行互動,你需要安裝乙個rabbitmq .net client
, 可以用nuget package manager
控制台去安裝 rabbitmq client。
connectionfactory connectionfactory = new connectionfactory();
iconnection connection = connectionfactory.createconnection();
現在再次假定 rabbitmq 跑在遠端伺服器上,下面的方法返回了乙個通往 rabbitmq service 的 connection 連線。
public iconnection getconnection(string hostname, string username, string password)
現在 rabbitmq service 已經在本地正常執行,使用下面的方法向佇列傳送訊息,請注意通往 rabbitmq service 的 connection 用的是預設配置。
public static void send(string queue, string data)
}}
channel 常用於和 server 進行通訊從而傳送和接收訊息,不過上面這種佇列是不持久的,為啥這麼說呢?因為我在queuedeclare
方法的第二個引數中設定了 false,所以送往這個 queue 的 message 只會存留於記憶體中,一旦 server 重啟,這個資料將會丟失。
下面的**展示了如何從 queue 中消費資料。
public static void receive(string queue)}}
}
接下來的**片段展示了如何使用 send 和 receive 方法進行資料的傳送和消費。
static void main(string args)
值得一提的是:rabbitmq 對持久化也提供了非常好的支援,有兩種模式的 queue 可供選擇:持久化和非持久化,如果採用持久化模式,訊息是存放在硬碟中的,反之非持久化的模式,資料僅僅存放於記憶體中,一旦server重啟,非持久化模式的佇列資料將會丟失,最後補充一下,持久化可以用於以下三個級別上: queue,exchange 和 message。
更多高質量乾貨:參見我的 github: dotnetfly
如何在C 中使用WebService
將他解壓後,進入到資料夾 gsoap 2.8.18 gsoap 2.8 gsoap bin win32 裡面有2個我們要用到的exe,wsdl2h.exe和soapcpp2.exe,如果缺少乙個typemap.dat,則從gsoap 2.8.18 gsoap 2.8 gsoap下拷貝進來,最後就可以...
如何在 C 中使用 Attribute
attribute 在 c 中是乙個非常強大的特性,它能夠給你的程式集新增元資料資訊。attribute 實際上是乙個物件,它可以與以下元素中的任何乙個相關聯 程式集 類 方法 委託 列舉 事件 字段 介面 屬性和結構,它會在這些物件上做資訊宣告,當程式執行之後,你可以通過反射來獲取關聯到這些物件上...
如何在 C 中使用 反射
c 中的反射常用於在程式的執行時獲取型別的元資料,可獲取的資訊包括已載入到程序中的程式集和型別資訊,它和 c 中的rtti runtime type information 的作用是差不多的。為了能夠使用反射,需要在專案中引用system.reflection命名空間,在使用反射的開始,你會獲取乙個...