很久都沒有寫博客了,從15年4月份一直忙到現(xiàn)在,我才有時(shí)間去做梳理和總結(jié),因?yàn)槲姨犭x職了,感覺整個(gè)世界突然變得不一樣,隨著而來的就是心情的放松,寫一篇文章也是對(duì)過去一年多工作的梳理,加深印象 積累和沉淀。

因?yàn)閺氖碌墓臼墙ㄖ袠I(yè)的公司,產(chǎn)品也是基于建筑管理體系,整體的項(xiàng)目包含了web端、客戶端、服務(wù)端,以及因?yàn)楫a(chǎn)品功能需要的一些工具類的軟件。在這種多系統(tǒng)的體系結(jié)構(gòu)之下,我們需要進(jìn)行多個(gè)系統(tǒng)之間的實(shí)時(shí)通訊,其實(shí)做到實(shí)時(shí)通訊的方式有很多種

1.sql server的Server_borker    數(shù)據(jù)變更通知,是基于sql server數(shù)據(jù)庫的,表中的數(shù)據(jù)變更會(huì)通知到監(jiān)聽的那端,但是覺得考慮到通訊比較頻繁,通訊端比較多,這種方式很容易造成代碼上和程序上的混亂,不做考慮。

2.wcf的消息廣播   相比第一種,這個(gè)對(duì)于這種多系統(tǒng)通訊更加不具備優(yōu)勢。這種在服務(wù)端進(jìn)行操作,客戶端通過注冊來監(jiān)聽服務(wù)端處理的進(jìn)度很明顯不適合兩個(gè)或者多個(gè)客戶端之間的通信,我們的系統(tǒng)可不僅僅限于客戶端服務(wù)端這么簡單,不做考慮。

3..NetMQ 就是本章中要介紹的解決多系統(tǒng)通訊問題的殺手锏了。這個(gè)其實(shí)在最開始是我們同事去下載研究的,在之后經(jīng)過一些包裝可以很方便的去使用,接下來我們?nèi)ヒ黄鹆私庖幌隆?

下載地址:http://www.codeproject.com/Articles/193611/DotNetMQ-A-Complete-Message-Queue-System-for-NET

簡單的畫個(gè)圖可以更加方便的去了解這個(gè)結(jié)構(gòu)

通過這個(gè)圖我們可以看到,在多個(gè)客戶端通訊之前需要先開啟服務(wù),然后通過唯一性的token我們就可以做到客戶端之間的信息通訊。

下載下來的應(yīng)該是一個(gè)服務(wù)的啟動(dòng)程序和一個(gè)管理端,經(jīng)過包裝和更改更加方便使用一些:

兩個(gè)服務(wù)

1..NETMQ本身的服務(wù)

2.添加令牌的服務(wù),開放成對(duì)外的wcf接口,可以通過接口取添加令牌。

網(wǎng)友評(píng)論