<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # [nsq][1] [參考文檔 含go實例][3] [消息的生命周期][4] [nsqadmin界面][2] ## 組件 ### nsqlookupd 管理nsqd節點拓撲信息并提供最終一致性的發現服務的守護進程 ### nsqd 負責接收、排隊、轉發消息到客戶端的守護進程,并且定時向nsqlookupd服務發送心跳 * Topic ——一個topic就是程序發布消息的一個邏輯鍵,當程序第一次發布消息時就會創建topic。 * Channels ——channel組與消費者相關,是消費者之間的負載均衡,channel在某種意義上來說是一個“隊列”。每當一個發布者發送一條消息到一個topic,消息會被復制到所有消費者連接的channel上,消費者通過這個特殊的channel讀取消息,實際上,在消費者第一次訂閱時就會創建channel。 Channel會將消息進行排列,如果沒有消費者讀取消息,消息首先會在內存中排隊,當量太大時就會被保存到磁盤中。 * Messages——消息構成了我們數據流的中堅力量,消費者可以選擇結束消息,表明它們正在被正常處理,或者重新將他們排隊待到后面再進行處理。每個消息包含傳遞嘗試的次數,當消息傳遞超過一定的閥值次數時,我們應該放棄這些消息,或者作為額外消息進行處理。 ### nsqadmin nsq的web統計界面,可實時查看集群的統計數據和執行一些管理任務。 ![](https://res.infoq.com/news/2015/02/nsq-distributed-message-platform/zh/resources/0206001.gif) 從上圖可以看出,單個nsqd可以有多個Topic,每個Topic又可以有多個Channel。Channel能夠接收Topic所有消息的副本,從而實現了消息多播分發;而Channel上的每個消息被分發給它的訂閱者,從而實現負載均衡,所有這些就組成了一個可以表示各種簡單和復雜拓撲結構的強大框架。 ## NSQ的主要特點如下 * 具有分布式且無單點故障的拓撲結構 支持水平擴展,在無中斷情況下能夠無縫地添加集群節點 * 低延遲的消息推送,參見官方提供的性能說明文檔 * 具有組合式的負載均衡和多播形式的消息路由 * 既擅長處理面向流(高吞吐量)的工作負載,也擅長處理面向Job的(低吞吐量)工作負載 * 消息數據既可以存儲于內存中,也可以存儲在磁盤中 * 實現了生產者、消費者自動發現和消費者自動連接生產者,參見nsqlookupd * 支持安全傳輸層協議(TLS),從而確保了消息傳遞的安全性 * 具有與數據格式無關的消息結構,支持JSON、Protocol Buffers、MsgPacek等消息格式 * 非常易于部署(幾乎沒有依賴)和配置(所有參數都可以通過命令行進行配置) * 使用了簡單的TCP協議且具有多種語言的客戶端功能庫 * 具有用于信息統計、管理員操作和實現生產者等的HTTP接口 * 為實時檢測集成了統計數據收集器StatsD * 具有強大的集群管理界面,參見nsqadmin ## 為了達到高效的分布式消息服務,NSQ實現了合理、智能的權衡,從而使得其能夠完全適用于生產環境中,具體內容如下: * 支持消息內存隊列的大小設置,默認完全持久化(值為0),消息即可持久到磁盤也可以保存在內存中 * 保證消息至少傳遞一次,以確保消息可以最終成功發送 * 收到的消息是無序的, 實現了松散訂購 * 發現服務nsqlookupd具有最終一致性,消息最終能夠找到所有Topic生產者 [1]:http://nsq.io/overview/quick_start.html [2]:http://blog.csdn.net/charn000/article/details/48109665 [3]:https://segmentfault.com/a/1190000009194607 [4]:https://www.cnblogs.com/zhangboyu/p/7452759.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看