<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] > [github](https://github.com/nats-io/nats-server) ## 概述 nats是Go實現的一個高性能分布式消息隊列,適用于高并發高吞吐量的消息分發場景。早期的nats以速度為重,沒有支持持久化。從16年開始,nats通過nats-streaming支持基于日志的持久化,以及可靠的消息傳輸。為了演示方便,我們本節中只使用nats 向subject為task發消息: ![](https://img.kancloud.cn/d8/8c/d88c96b10dce7b3906d72effddd92257_438x327.png) 以workers的queue從tasks subject訂閱消息: ![](https://img.kancloud.cn/be/32/be3276dfff2f13e5eda8da9952daa1bb_584x156.png) ## 實例 **基本消息生產** ``` nc, err := nats.Connect(nats.DefaultURL) if err != nil {return} // 指定 subject 為 tasks,消息內容隨意 err = nc.Publish("tasks", []byte("your task content")) nc.Flush() ``` **基本消息消費** 直接使用nats的subscribe API并不能達到任務分發的目的,因為pub sub本身是廣播性質的。所有消費者都會收到完全一樣的所有消息。 除了普通的subscribe之外,nats還提供了queue subscribe的功能。只要提供一個queue group名字(類似Kafka中的consumer group),即可均衡地將任務分發給消費者。 ``` nc, err := nats.Connect(nats.DefaultURL) if err != nil {return} // queue subscribe 相當于在消費者之間進行任務分發的分支均衡 // 前提是所有消費者都使用 workers 這個 queue // nats 中的 queue 概念上類似于 Kafka 中的 consumer group sub, err := nc.QueueSubscribeSync("tasks", "workers") if err != nil {return} var msg *nats.Msg for { msg, err = sub.NextMsg(time.Hour * 10000) if err != nil {break} // 正確地消費到了消息 // 可用 nats.Msg 對象處理任務 } ```
                  <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>

                              哎呀哎呀视频在线观看