日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

消息队列--RabbitMQ简单使用

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 消息队列--RabbitMQ简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝使用

  • 地址:http://www.rabbitmq.com/
  • 需要根據不同的版本選擇不同的erlang

安裝erlang

安裝RabbitMQ首先需要安裝erlang環境,根據GitHub上erlang中README配置yum源

將上面的內容寫入紅線標注的文件中保存退出,然后安裝erlang

yum update -y yum install -y erlang-23.3.4

安裝RabbitMQ

下載完成RabbitMQ的安裝包后執行下面的命令安裝

yum install rabbitmq-server-3.8.19-1.el7.noarch.rpm

安裝完成后可以看到有6個相關的可執行程序

其中核心是rabbitmq-server

RabbitMQ的使用

啟動

rabbitmq-server start & # 后臺啟動

啟動RabbitMQ圖形化管理界面

RabbitMQ的圖形化管理界面模式是沒有打開的,需要我們手動去打開,rabbitmq-plugins就是管理各種插件的工具

rabbitmq-plugins list # 查看所有插件 rabbitmq-plugins enable rabbitmq_management # 打開圖形化界面 rabbitmq-plugins disable rabbitmq_management # 關閉圖形化界面

訪問圖形化管理界面

打開圖形化管理界面插件后就可以通過本機瀏覽器訪問RabbitMQ了:http://127.0.0.1:15672/ 用戶名和密碼都是guest

如果要在其他機器上訪問該界面則需要配置用戶名和密碼,權限等

rabbitmqctl add_user Guest Guest # 添加用戶 rabbitmqctl set_user_tags Guest administrator # 賦予該用戶管理員角色 rabbitmqctl set_permissions -p / Guest ".*" ".*" ".*" # 給該用戶賦予權限

這樣就可以在其他機器上訪問RabbitMQ的管理界面了

下面通過Go語言實現一個簡單的消息隊列的應用

consumer.go

package mainimport ("fmt""github.com/streadway/amqp" )//消費者func main() {//1.建立連接connection, err := amqp.Dial("amqp://Guest:Guest@192.168.27.139:5672")if err != nil {panic(err)}defer connection.Close()//2.設置通道ch, err := connection.Channel()if err != nil {panic(err)}//3.定義exchange//err = ch.ExchangeDeclare("exchange-name", "direct", false, false, false, false, nil)err = ch.ExchangeDeclare("exchange-name-topic", "topic", false, false, false, false, nil)if err != nil {panic(err)}//4.定義隊列 queuequeue, err := ch.QueueDeclare("", false, false,false,false, nil)if err != nil {panic(err)}//5.綁定 bind//err = ch.QueueBind(queue.Name, "direct_key", "exchange-name", false, nil)//topic 模糊匹配err = ch.QueueBind(queue.Name, "topic.#", "exchange-name-topic", false, nil)if err != nil {panic(err)}//6.接收消息consume_msg, err := ch.Consume(queue.Name, "", false, false, false, false, nil)if err != nil {panic(err)}//7.打印消息//msg := <-consume_msg//fmt.Printf("received msg: %s\n", msg.Body)for msg := range consume_msg {fmt.Printf("received msg: %s\n", msg.Body)} }

producer.go

package mainimport "github.com/streadway/amqp"//生產者func main() {//1.建立連接connection, err := amqp.Dial("amqp://Guest:Guest@192.168.27.139:5672")if err != nil {panic(err)}defer connection.Close()//2.設置通道ch, err := connection.Channel()if err != nil {panic(err)}//3.定義exchange//err = ch.ExchangeDeclare("exchange-name", "direct", false, false, false, false, nil)err = ch.ExchangeDeclare("exchange-name-topic", "topic", false, false, false, false, nil)if err != nil {panic(err)}//4.定義隊列 queue//queue, err := ch.QueueDeclare("", false, false,false,false, nil)//if err != nil {// panic(err)//}//5.綁定 bind//6.定義發布的消息//msg := "hello"//7.發布消息//err = ch.Publish("exchange-name", "direct_key", false, false, amqp.Publishing{Body: []byte(msg)})err = ch.Publish("exchange-name-topic", "topic.first", false, false, amqp.Publishing{Body: []byte("topic1")})err = ch.Publish("exchange-name-topic", "TOPIC.eg", false, false, amqp.Publishing{Body: []byte("topic-eg")})err = ch.Publish("exchange-name-topic", "topic.last", false, false, amqp.Publishing{Body: []byte("topic2")})if err != nil {panic(err)} }

總結

以上是生活随笔為你收集整理的消息队列--RabbitMQ简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。