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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Simple模式 === 最簡單常用的模式 這個不就是go channel通訊嗎! ![](https://box.kancloud.cn/3875e8c573eeb1074a1caf99d3e569cc_655x132.png) ### 簡單模式Step1: 創建簡單模式下RabbitMQ ~~~ // 簡單模式Step1: 創建簡單模式下RabbitMQ func NewRabbitMQSimple(queueName string) *RabbitMQ { // 使用default exchange mq := NewRabbitMQ(queueName,"","") return mq } ~~~ ### 簡單模式Step2: 簡單模式下生產代 ~~~ // 簡單模式Step2: 簡單模式下生產代碼 func (r *RabbitMQ) PublishSimple(message string) error { // 1. 申請隊列,如果隊列不存在會自動創建,如果存在則跳過創建 // 保證隊列存在,消息能夠發送到隊列中 _, e := r.channel.QueueDeclare( r.QueueName, // 隊列名稱 false, // 消息是否持久化 false不 false, // 是否自動刪除 沒有消息就刪除次隊列 false, // 是否具有排他性 (true只有自己可以訪問) false, // 是否阻塞 (設置為true時就像沒有bufio的channel) nil, // 額外的屬性 ) if e != nil { log.Println(e.Error()) return e } // 2. 發送消息到隊列中 e = r.channel.Publish( r.Exchange,// 交換機 名稱 r.QueueName, // 隊列名稱 false,// 如果為true,根據exchange類型和routkey規則,如果無法找到符合條件的隊列,那末就會吧發送的消息返回給發送者 false,// 如果為true,但exchange發送消息到隊列后發現隊列上沒有綁定消費者,則會吧消息發送給發送者 amqp.Publishing{ ContentType:"text/plain",// 明文 Body:[]byte(message), }, ) return e } ~~~ ### 簡單模式Step3: 消費消息 ~~~ // 簡單模式Step3: 消費消息 func (r *RabbitMQ) ConsumeSimple() error { // 1. 申請隊列,如果隊列不存在會自動創建,如果存在則跳過創建 // 保證隊列存在,消息能夠發送到隊列中 _, e := r.channel.QueueDeclare( r.QueueName, // 隊列名稱 false, // 消息是否持久化 false不 false, // 是否自動刪除 沒有消息就刪除次隊列 false, // 是否具有排他性 (true只有自己可以訪問) false, // 是否阻塞 (設置為true時就像沒有bufio的channel) nil, // 額外的屬性 ) if e != nil { log.Println(e.Error()) return e } // 接受消息 msgch, e := r.channel.Consume( r.QueueName, // 隊列名稱 "", // 當前消費者名稱 (用于區分多個消費者) true, // 是否自動應答 false,// 是否具有排他性 (true只有自己可以訪問,連接端口會自動刪除) false, // [已經不支持] 如果設置為true,表示不能了個將同一個connection中發送的消息傳遞個ie這個connection中的消費者 false, // 消費是否阻塞 nil,// 其他參數 ) if e != nil { return e } foreve := make(chan bool) // 啟動協程處理消息 go func() { for { select { case data := <-msgch : // 實現消息處理 bytes := data.Body fmt.Printf("%s",bytes) } } }() <-foreve return nil } ~~~ simple交換機設置為空 本節課程代碼: [https://github.com/dollarkillerx/High-concurrent-spike-system/tree/3a98392d64d66d45b58877da15d00fbe2dabb9c4](https://github.com/dollarkillerx/High-concurrent-spike-system/tree/3a98392d64d66d45b58877da15d00fbe2dabb9c4)
                  <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>

                              哎呀哎呀视频在线观看