<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] > NSQ是Go語言編寫的一個開源的實時分布式內存消息隊列,其性能十分優異 ## 安裝NSQ服務端 ### 下載地址 > https://nsq.io/deployment/installing.html 下載linux最新穩定版 ### 啟動nsqlookupd > 主要負責服務發現 負責nsqd的心跳、狀態監測,給客戶端、nsqadmin提供nsqd地址與狀態 ~~~ ./nsqlookupd ~~~ ### 啟動nsqd > 負責接收消息,存儲隊列和將消息發送給客戶端 ~~~ ./nsqd --lookupd-tcp-address=127.0.0.1:4160 ~~~ ### 啟動nqsadmin > nsqadmin是一個web管理界面,訪問地址 http://localhost:4171/ ~~~ ./nsqadmin --lookupd-http-address=127.0.0.1:4161 ~~~ ## 生產者 (nsq-send.go) ~~~ package main import ( "github.com/nsqio/go-nsq" "fmt" "strconv" ) var ( //nsqd的地址,使用了tcp監聽的端口 tcpNsqdAddrr = "127.0.0.1:4150" ) func main() { //初始化配置 config := nsq.NewConfig() for i := 0; i < 100; i++ { //創建100個生產者 tPro, err := nsq.NewProducer(tcpNsqdAddrr, config) if err != nil { fmt.Println(err) } //主題 topic := "topic_demo" //主題內容 tCommand := "new data!" + strconv.Itoa(i) //發布消息 err = tPro.Publish(topic, []byte(tCommand)) if err != nil { fmt.Println(err) } } } ~~~ ## 消費者 (nsq-receive.go) > 測試服務器上可執行`go run nsq-receive.go`進行測試 > 正式服務器上,需先進行打包`go build nsq-receive.go`后,再使用`nohup ./nsq-receive &`或者`supervisor`進行運行 ~~~ package main import ( "fmt" "time" "github.com/nsqio/go-nsq" ) // 消費者 type ConsumerT struct{} // 主函數 func main() { InitConsumer("topic_demo", "test-channel", "127.0.0.1:4161") for { time.Sleep(time.Second * 10) } } //處理消息 func (*ConsumerT) HandleMessage(msg *nsq.Message) error { fmt.Println("receive", msg.NSQDAddress, "message:", string(msg.Body)) return nil } //初始化消費者 func InitConsumer(topic string, channel string, address string) { cfg := nsq.NewConfig() cfg.LookupdPollInterval = time.Second //設置重連時間 c, err := nsq.NewConsumer(topic, channel, cfg) // 新建一個消費者 if err != nil { panic(err) } c.SetLogger(nil, 0) //屏蔽系統日志 c.AddHandler(&ConsumerT{}) // 添加消費者接口 //建立NSQLookupd連接 if err := c.ConnectToNSQLookupd(address); err != nil { panic(err) } } ~~~
                  <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>

                              哎呀哎呀视频在线观看