RabbitMQ常規操作(golang)

2021-10-06 15:42:14 字數 2969 閱讀 5891

//建立rabbitmq結構體例項

func

newrabbitmq

(queuename string

,exchange string

,key string

)*rabbitmq

var err error

rabbitmq.conn,err = amqp.

dial

(rabbitmq.mqurl)

rabbitmq.

failonerr

(err,

"建立連線錯誤"

) rabbitmq.channel,err = rabbitmq.conn.

channel()

rabbitmq.

failonerr

(err,

"獲取channel失敗"

)return rabbitmq

}//斷開channel和connection

func

(r *rabbitmq)

destory()

//錯誤處理函式

func

(r *rabbitmq)

failonerr

(err error

,message string)}

//簡單模式step: 1、建立簡單模式下rabbitmq例項

func

newrabbitmq******

(queuename string

)*rabbitmq

//簡單模式step: 2.簡單模式下生產**

func

(r *rabbitmq)

publish******

(message string

)//2、傳送訊息到佇列中

r.channel.

publish

( r.exchange,

r.queuename,

//如果為true,會根據exchange型別和routkey規則,如果無法找到符合條件的佇列,那麼會把訊息返回給傳送者

false

,//如果為true,當exchange傳送訊息到佇列後發現佇列上沒有繫結消費者,則會把訊息返回給傳送者

false

, amqp.publishing,)

}//簡單模式step: 3.簡單模式下消費**

func

(r *rabbitmq)

consume******()

//接受訊息

msgs,err := r.channel.

consume

( r.queuename,

//用來區分多個消費者"",

//是否自動應答

true

,//是否具有排他性

false

,//如果設定為true,表示不能將同乙個connection中傳送的訊息傳遞給這個connection中的消費者

false

,//佇列消費是否阻塞

false

,nil,)

if err !=

nil forever :=

make

(chan

bool

)//啟用攜程處理訊息

gofunc()

}() log.

printf

("[*] waiting for message,to exit"

)}//二:工作模式,work 乙個訊息只能被乙個消費者獲取(使用場景,生產訊息的速度大於消費訊息的速度)

//三:publish/subscribe,訂閱模式

//訊息被路由投遞給多個佇列,乙個訊息被多個消費者獲取

//訂閱模式下建立rabbitmq例項

func

newrabbitmqpubsub

(exchangename string

)*rabbitmq

//訂閱模式下生產

func

(r *rabbitmq)

publishpub

(message string),

)}//訂閱模式消費**

func

(r *rabbitmq)

recievesub()

}() log.

printf

("[*] waiting for message,to exit"

)}//四、routing,路由模式

//乙個訊息被多個消費者獲取。並且訊息的目標佇列可被生產者指定

//路由模式

//建立rabbitmq例項

func

newrabbitmqrouting

(exchangename string

,routingkey string

)*rabbitmq

//路由模式傳送訊息

func

(r *rabbitmq)

publishrouting

(message string),

) r.

failonerr

(err,

"failed to publish message")}

//路由模式接受訊息

func

(r *rabbitmq)

recieverouting()

}() fmt.

println

("退出請按ctrl+c\n")}

搭建rabbitMq 阿里 和 常規

string s 傳送的資訊 connectionfactory factory new connectionfactory 設定接入點,到控制台概覽頁面上檢視獲取 factory.sethost aliyuncs.com 為資源 owner 賬戶 id 資訊,單擊控制台右上角客戶頭像進入賬號管理檢...

oracle常規操作

1 建立表 sql create table test id varchar2 10 age number 2 備份表 sql create table asselect from test group by id 3 刪除表 sql drop table test 刪除表結構和表資料 4 清空表 ...

ROS常規操作

記錄下在使用ros的過程中,一些常用操作。在ros中如果使用乙個工作空間,直接在 bashrc檔案的最後一行加入 source hellow catkin ws devel setup.bash 就可以讓roscd找到工作空間中的包了。但是如果使用多個工作空間,直接在 bashrc 中再加一句話 s...