NSQ是一個基於Go語言的開源的分佈式實時消息平臺html
NSQ可用於大規模系統的實時消息服務,它的設計目標是爲在分佈式環境下提供一個強大的去除中心化的分佈式服務架構,能夠天天處理數以億計的實時消息git
簡介:http://www.oschina.net/p/nsq?fromerr=IbkI6VH8github
官方網站:http://nsq.io/web
NSQ的四大組件sql
nsqlookupd:管理nsqd節點拓撲信息並提供最終一致性的發現服務的守護進程架構
nsqd:負責接收、排隊、轉發消息到客戶端的守護進程,而且定時向nsqlookupd服務發送心跳分佈式
nsqadmin:nsq的web統計界面,可實時查看集羣的統計數據和執行一些管理任務 工具
utilities:常見基礎功能、數據流處理工具,如nsq_stat、nsq_tail、nsq_to_file、nsq_to_http、nsq_to_nsq、to_nsq 性能
最主要的優點在以下三個方面:網站
1,性能。在多個著名網站生產環境中被採用,天天可以處理數億級別的消息。參見官方提供的性能說明文檔
2,易用性。很是易於部署(幾乎沒有依賴)和配置(全部參數均可以經過命令行進行配置)。
3,可擴展性。具備分佈式且無單點故障的拓撲結構,支持水平擴展,在無中斷狀況下可以無縫地添加集羣節點。還具備強大的集羣管理界面,參見nsqadmin
RabbitMQ和NSQ的一些特色的比較:http://datastream.github.io/articles/mq-in-cloud
支持的客戶端語言
http://nsq.io/clients/client_libraries.html
源碼解析