Golang簡(jiǎn)單又快速地接入rocketmq實(shí)現(xiàn)消息隊(duì)列業(yè)務(wù)

在web應(yīng)用業(yè)務(wù)中,經(jīng)常會(huì)遇到類(lèi)似異步處理芭挽,秒殺辜羊,排隊(duì)等邏輯,這時(shí)利用消息隊(duì)列來(lái)完成這樣的功能是一個(gè)明智的選擇斜友;

在業(yè)務(wù)規(guī)模較小的應(yīng)用中我們可以使用redis中的list數(shù)據(jù)類(lèi)型炸裆,在大規(guī)模業(yè)務(wù)中我們可以引入rocketmq等,尤其在業(yè)務(wù)重構(gòu)時(shí)需要將原有的redis消息隊(duì)列實(shí)現(xiàn)改成rocketmq鲜屏,為了保證既有業(yè)務(wù)不受影響又不引入新的BUG烹看,是一件非常苦惱的事情洛史;

今天就介紹一個(gè)包惯殊,可以方便的解決上述問(wèn)題,他是 Orange框架 中的一個(gè)子包也殖,對(duì)常用的mq操作進(jìn)行了封裝土思,即使沒(méi)有通過(guò)該框架開(kāi)發(fā)也能直接使用該子包;通過(guò) go moduls 特性進(jìn)行按需加載忆嗜;

讓我們更新關(guān)注業(yè)務(wù)本身浪漠,各種客戶端/sdk接入交給既有封裝即可;

準(zhǔn)備工作:

  • 搭建好rocketmq服務(wù)霎褐,啟動(dòng) mqnamesrv和至少1個(gè)mqbroker節(jié)點(diǎn)址愿;
  • 在 GOPATH 目錄下創(chuàng)建一個(gè)demo目錄并在目錄中創(chuàng)建一個(gè)main.go,寫(xiě)入如下demo代碼:
package main

import (
   "gitee.com/zhucheer/orange/queue"
   "time"
   "fmt"
)

func main(){
   // 注冊(cè)生產(chǎn)者 填入broker節(jié)點(diǎn),group名稱(chēng),重試次數(shù)信息
   mqProducerClient := queue.RegisterRocketProducerMust([]string{"192.168.137.100:9876"}, "test", 1)

   // 注冊(cè)消費(fèi)者 填入broker節(jié)點(diǎn),group名稱(chēng)信息
   mqConsumerClient:= queue.RegisterRocketConsumerMust([]string{"192.168.137.100:9876"}, "test")

   go func() {
      for i:=0;i<10;i++{
         // 向隊(duì)列發(fā)送一條消息 填入消息隊(duì)列topic和消息體信息
         ret,_:=mqProducerClient.SendMsg("topicTest", "Hello mq~~")
         fmt.Println("========producer push one message====", ret.MsgId)

         time.Sleep(time.Second)
      }

   }()

   // 執(zhí)行消費(fèi)者監(jiān)聽(tīng) 填入消息隊(duì)列topic
   mqConsumerClient.ListenReceiveMsgDo("topicTest", func(mqMsg queue.MqMsg) {
      // 收到一條消息
      fmt.Println("receive====>",mqMsg.MsgId, mqMsg.BodyString())

   })

   time.Sleep(20*time.Second)
}

  • 利用 go moduls 加載依賴并運(yùn)行(需要開(kāi)啟go moduls 或go1.13版本以上)
go mod init
go mod tidy
go run main.go

這樣我們就能看到該示例冻璃,每隔1s會(huì)生產(chǎn)一條消息并立刻消費(fèi)了該消息

框架介紹??????

如果我們直接使用了 Orange框架 來(lái)開(kāi)發(fā)我們的web業(yè)務(wù)响谓,那么體驗(yàn)將會(huì)更加優(yōu)雅;

因該包使用了面向接口的模式省艳,我們能輕易的通過(guò)配置來(lái)對(duì)消息隊(duì)列驅(qū)動(dòng)進(jìn)行更改娘纷,能輕松的在redis和rocketmq直接進(jìn)行切換。

如果有興趣可以查看詳細(xì)文檔:Orange框架#消息隊(duì)列文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末跋炕,一起剝皮案震驚了整個(gè)濱河市赖晶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖遏插,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捂贿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡胳嘲,警方通過(guò)查閱死者的電腦和手機(jī)厂僧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)了牛,“玉大人颜屠,你說(shuō)我怎么就攤上這事∮セ觯” “怎么了甫窟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蛙婴。 經(jīng)常有香客問(wèn)我粗井,道長(zhǎng),這世上最難降的妖魔是什么敬锐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任背传,我火速辦了婚禮,結(jié)果婚禮上台夺,老公的妹妹穿的比我還像新娘径玖。我一直安慰自己,他們只是感情好颤介,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布梳星。 她就那樣靜靜地躺著,像睡著了一般滚朵。 火紅的嫁衣襯著肌膚如雪冤灾。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天辕近,我揣著相機(jī)與錄音韵吨,去河邊找鬼。 笑死移宅,一個(gè)胖子當(dāng)著我的面吹牛归粉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漏峰,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼糠悼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了浅乔?” 一聲冷哼從身側(cè)響起倔喂,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后席噩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體班缰,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年班挖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鲁捏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芯砸。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡萧芙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出假丧,到底是詐尸還是另有隱情双揪,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布包帚,位于F島的核電站渔期,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渴邦。R本人自食惡果不足惜疯趟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谋梭。 院中可真熱鬧信峻,春花似錦、人聲如沸瓮床。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)隘庄。三九已至踢步,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丑掺,已是汗流浹背获印。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留街州,地道東北人兼丰。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菇肃,于是被迫代替她去往敵國(guó)和親地粪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355