雖然 nsqd 可以單獨運行成節(jié)點,我們還是假設(shè)你希望使用分布式系統(tǒng)的優(yōu)勢。
以下是獨立的二進(jìn)制文件,需要安裝并運行:
nsqd 是守護(hù)進(jìn)程,接收,緩存,并投遞消息給客戶端
所有的配置都通過命令行參數(shù)來管理。我們希望默認(rèn)配置能滿足多數(shù)應(yīng)用場景,有一部分參數(shù)值得注意:
--mem-queue-size 調(diào)整每個話題(topic)/通道(channnel)消息隊列數(shù)。超過上限的消息,將會寫到持平,通過 --data-path 定義。
同時,nsqd 將會需要通過 nsqlookupd 配置(參見以下詳情),為每個實例指定參數(shù)。
拓?fù)浣Y(jié)構(gòu),我們推薦運行 nsqd ,和生產(chǎn)消息服務(wù)共同寫作。
nsqd 可以配置來推送數(shù)據(jù)到 statsd,通過指定 --statsd-address。在 nsq.* 命令空間里,nsqd發(fā)送統(tǒng)計數(shù)據(jù),參見 nsqd statsd。
nsqlookupd 是一個守護(hù)進(jìn)程,為消費者提供運行時發(fā)現(xiàn)服務(wù),來查找指定話題(topic)的生產(chǎn)者 nsqd 。
它維護(hù)非持久化狀態(tài),并且不需要和其他 nsqlookupd 實例來滿足產(chǎn)線。
運行數(shù)據(jù)取決于你的冗余需求。使用很少的支援,并且可以和其他服務(wù)協(xié)同操作。我們推薦每個數(shù)據(jù)中心最少運行 3 個集群。
nsqadmin 是 Web 服務(wù),用來實時的管理你的 NSQ 集群。它通過和 nsqlookupd 實例交流,來確定生產(chǎn)者和 graphite 圖表(要求打開 nsqd 端 statsd)。
我們僅需運行一個,并使它可以公開訪問(安全)。
僅有一些 HTML 模板需要部署。默認(rèn) nsqadmin,位于 /usr/local/share/nsqadmin/templates,可以通過 --template-dir 重寫。
要顯示 graphite 圖表,指定 --graphite-url。如果你已經(jīng)使用 statsd,給所有的 keys 添加前綴,就需要指定 --use-statsd-prefixes。最后,如果 graphite 不能公開訪問,通過指定--proxy-graphite, 你可以使用 nsqadmin 代理這些請求。
每個守護(hù)進(jìn)程,都擁有 /ping HTTP 端點,它可以用來創(chuàng)建監(jiān)控檢測。
即使實時調(diào)試,它也能運行的非常好:
$ watch -n 0.5 "curl -s http://127.0.0.1:4151/stats"
一般通過 nsqadmin 進(jìn)行調(diào)試,分析,管理。