//建立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...