http://blog.csdn.net/jelly_bitores/article/details/39120797 2014
Apache Apollo
看代碼:
首先準(zhǔn)備:
原文地址:http://java./articles/introducing-apache-apollo-part
Apache Apollo是下一代的ActiveMQ系統(tǒng),。為了在多核的計(jì)算機(jī)上有更快的處理速度和更大的處理規(guī)模,,Apollo“從頭開始”重新設(shè)計(jì)了內(nèi)核,。ActiveMQ是最受歡迎的開源消息中間件(如果不是最受歡迎的,,OneCoder注:作者意思應(yīng)該是指如果不僅僅在開源界),,并且有很好的性能,消息持久化,,高可用性以及網(wǎng)絡(luò)代理(networks of brokers)等特性,。最重要的是,,ActiveMQ已經(jīng)在使用中變得十分穩(wěn)定,并且我們已經(jīng)成功使用ActiveMQ支持了如零售,、銀行,、電子上午和政府等領(lǐng)域的世界知名企業(yè),。 隨著ActiveMQ的逐漸壯大, 其內(nèi)部復(fù)雜的線程實(shí)現(xiàn),導(dǎo)致其在高核心,高資源配置的計(jì)算機(jī)上擴(kuò)展性不佳,。線程實(shí)現(xiàn)問題的關(guān)鍵點(diǎn)不在于不合適的線程使用,,更多的是因?yàn)槠湓O(shè)計(jì)和開發(fā)之初,,是處在沒有很多可靠的異步Java API和非阻塞的IO庫(kù)的時(shí)期。任何系統(tǒng)在有狀態(tài)共享,,爭(zhēng)用同步(contended synchronizations ),,獨(dú)占鎖的情況下都容易有擴(kuò)展性問題。 然而,,ActiveMQ在其擅長(zhǎng)的領(lǐng)域表現(xiàn)尚可,,并且由于在現(xiàn)在很穩(wěn)定,重寫其線程架構(gòu)似乎并不是一個(gè)好注意,。所以,Apollo誕生了,現(xiàn)在是ActiveMQ的一個(gè)子項(xiàng)目,。我們?nèi)钥梢匝赜肁ctiveMQ5.x系列的使用習(xí)慣去使用他,不過現(xiàn)在是在新的線程架構(gòu)之下,并且可以支持未來百萬(wàn)級(jí)別的消息目標(biāo)地址,成千上萬(wàn)的連接,高吞吐率以及對(duì)資源的最大程度的利用。特別是,,當(dāng)后端的兼容性完成以后,,Apollo便會(huì)成為ActiveMQ6.0,。 對(duì)于那些提問說:“這是否意味著ActiveMQ的壽命即將終止,?”的人。斬釘截鐵的回答:不!。ActiveMQ在那之前還有很長(zhǎng)的路要走,如之前提到的正在被企業(yè)領(lǐng)導(dǎo)所使用。ActiveMQ的Bug的修復(fù)和支持仍然依賴于FuseSource (不久將會(huì)變?yōu)镽edHat),,當(dāng)然還有社區(qū),。只要對(duì)社區(qū)的興趣還在,ActiveMQ(包括其他的Apache項(xiàng)目)就不會(huì)消亡。 Apollo的目標(biāo)不是遙不可及,,它也不是一個(gè)新生的工程。它其實(shí)已經(jīng)開發(fā)2年多了,,在beta階段有6個(gè)版本,,在2012年2月發(fā)布了1.0版,。已經(jīng)有不少的人在使用Apollo。Apollo的開發(fā)經(jīng)理 Hiram Chirino發(fā)布Apollo與其他消息代理的一些參數(shù)指標(biāo)的對(duì)比,,如:RabbiMQ,HornetQ以及ActiveMQ,。參見 the stomp benchmarks here 和 the JMS benchmarks. |
|