首先介紹下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息隊列,干嘛用的呢,說白了就是一個消息的接受和轉發的容器,可用於消息推送。
下面介紹主題,就是今天為大家介紹的ActiveMQ:
他是Apache出品的一個開源的消息隊列軟件,運行在JVM下,支持多種語言,如JAVA,C++,C#。
現在先為大家介紹下如何配置ActiveMQ的服務器端:
1、當然是下載軟件了
去官方網站下載:http://activemq.apache.org/ 我下載的是apache-activemq-5.8.0-bin 5.8版本,當然開源的也是支持下載source的,需要自己編譯下,這裡不做過多介紹
2、解壓後,進入\apache-activemq-5.8.0\bin\win32啟動activemq.bat。系統會自動執行啟動過程,當然一般安裝失敗的情況是沒有裝JVM環境,啟動成功應該是這樣
3、打開浏覽器輸入http://localhost:8161/admin/默認配置是這個,當然你也可以更改這個配置
4、至此,服務端啟動完畢
—————————————————————————————————完美分割———————————————————————————————————
現在就是今天的主題了,怎樣在C#中使用ActiveMQ提供的API實現消息的訂閱和發布
1、首先需要下載ActiveMQ提供的API函數,這個也從官網下Apache.NMS-1.6.0-bin和Apache.NMS.ActiveMQ-1.6.0-bin 這兩個dll都在下載後文件夾的bin目錄下;
2、將這兩個文件在項目中引用;
3、在ActiveMQ中,有兩個概念,一個是生產者(Producer),另一個是消費者(Consumer),生產者就是我們常說的發布者,而消費者,就是訂閱者,這樣解釋可能更好理解一下吧,如果知道發布訂閱模式的話,不知道的話,字面意思也很好理解,發布者就是發布消息的,而訂閱者通過訂閱事件,將消息接收到;
4、直接上代碼了,Winform下的代碼,如果不想處理界面線程回調問題,可以使用Console程序
5、Produce
factory = ConnectionFactory( lbMessage.Text = btnConfirm_Click( (IConnection connection = (ISession session = IMessageProducer prod = session.CreateProducer( Apache.NMS.ActiveMQ.Commands.ActiveMQQueue( ITextMessage message = message.Text = message.Properties.SetString(, lbMessage.Text = txtMessage.Text = }
6、consumer
IConnectionFactory factory = ConnectionFactory( IConnection connection = connection.ClientId = ISession session = IMessageConsumer consumer = session.CreateConsumer( Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(), consumer.Listener += ITextMessage msg = tbReceiveMessage.Invoke( tbReceiveMessage.Text += .Format( }
7、啟動界面這就完事了
今天咱說的就是一個皮毛,我也是下午接到任務要做MQ方面的開發,才臨時抱的佛教,希望拋磚引玉,大家繼續鑽研,當然沒事可以把API的代碼下來自己看看以上是怎麼實現的,開源的好處就不多說了,自己做功課去了