開源jms簡單比較
我考慮在公司的專案中採用jms來降低伺服器之間的耦合性,但為了降低成本,商業軟體是不考慮的,於是只能在開源的並且對商業友好的jms伺服器中選擇乙個了。選擇條件主要基於:
準備進行選擇的jms伺服器有:openjms
、ubermq
、activemq
、mantaray
、joram
openjms:老牌的jms伺服器了,也是我最早知道的開源jms伺服器,不過只支援jms 1.02,已經很長時間沒有更新了,因此不予考慮。
ubermq:採用nio的jms伺服器,以前我學習nio的時候看過它的**,寫的蠻不錯的,也支援jms 1.1。由於採用了nio,所以具有很高的彈性,在滿足專案的效能需求上沒有什麼問題;本身也提供jndi服務,但是遺憾的是我bind其他型別的資料時會出錯;提供admin和viewer兩個管理工具,但是在管理工具裡不能建立connectionfactory和destination並繫結到jndi;文件不太完整;最頭痛的對於持久化支援不好,如果關閉jms伺服器再開啟,所有儲存在jms中的資訊就全部丟失了,這點沒有辦法滿足商業應用所需的穩定性。
activemq:最近比較活躍的乙個jms伺服器,主頁上的介紹說在協議配置上可以選擇支援nio,但是我仔細看它所支援的協議,卻並沒有提到如何配置,並且在實際的測試中也並沒有發現其有採用nio的跡象,多連線乙個client端,伺服器端就增多了乙個執行緒。滿足jms 1.1,有多種方法進行持久化;本身不提供jndi,也沒有對jmx的支援,本身不帶管理工具,採用hermes
進行管理(這個我會在以後提到),文件也相對較少。
joram:支援jms 1.1,可以持久化到檔案,本身提供jndi服務和提供對jmx的支援,自帶的管理工具可以新增connectionfactory和destination並繫結到jndi,這點對實現動態管理來說非常有用;文件非常完備,100多頁的pdf,包含了各種配置和調整資訊。其穩定性考慮的尤其好,不僅考慮到jms伺服器的集群,甚至連jndi的集群也考慮進去(儘管暫時對我而言還用不上),這點對於商業應用而言應該會有加分。
activemq是apache license,joram是lgpl,這兩者對於商業應用都是友好的;ubermq和mantaray採用是dual license,ubermq的dual license是只要你不分發,就可以允許使用;而mantaray是商業使用需要應用乙個商業的license。
比較上面的這些jms伺服器,最終我是選擇了joram,其滿足了我的絕大部分要求,唯一比較遺憾的是其採用傳統的io模型,每連線乙個client端會在伺服器端增加兩個執行緒,這點稍微影響了伺服器的彈性。不過考慮到我們的專案應用,這點暫時可以不用考慮,實在壓力過大了,最多到時候採用jms集群唄:)
開源協議比較
freedom與free price是不同的,商業軟體就必須保密麼?明白了吧。開源注重的是 分享,你賣多少錢是你的事,當然也有例外。gtk 採用的是lgpl協議的自由軟體包,是gnu專案的一部分 lipcap 採用的是bsd協議。附 linux和gcc編譯器都是gpl許可的,但我們可以自由地區使用它...
開源協議 幾張開源協議比較
每天在做軟體的時候都能遇到很多開原協議,一直不是很清楚有什麼區別,今天參考了一下別人的文章,在這裡做個總結。你可以將軟體複製到你的電腦,你客戶的電腦,或者任何地方。複製份數沒有任何限制。可自由分發 可以用來盈利 你可以在分發軟體的時候收費,但你必須在收費前向你的客戶提供該軟體的 gnu gpl 許可...
JMS學習筆記(四) JMS開發步驟
1.jms開發步驟 乙個jms 應用是幾個 jms 客戶端交換訊息,開發 jms客戶端應用由以下幾步構成 1 用jndi 得到connectionfactory 物件 2 用connectionfactory 建立connection 物件 3 用connection 物件建立乙個或多個 jms s...