我正在嘗試使用 Go Micro 框架編寫一個(gè)微服務(wù),該框架將從 RabbitMQ 代理消費(fèi)并寫入另一個(gè)。Go Micro 有一個(gè) RabbitMQ 插件,但似乎如果想使用 Go Micro 抽象(例如micro.RegisterSubscriber),就必須依賴庫內(nèi)部的許多全局狀態(tài)。我最終設(shè)置了一個(gè)消費(fèi)者使用micro.RegisterSubscriber,然后手動(dòng)創(chuàng)建一個(gè)單獨(dú)的代理,注意不要使用任何內(nèi)部全局狀態(tài)(例如默認(rèn)交換),然后broker.Publish在消費(fèi)者函數(shù)內(nèi)調(diào)用,這意味著我必須在發(fā)送消息之前手動(dòng)編組消息。這不是 Go Micro 支持的模式嗎?有沒有更好的方法來做這樣的事情?我應(yīng)該提到,在這種特殊情況下選擇 Go Micro 的主要原因是因?yàn)樗坪蹙哂锌煽康?RabbitMQ 抽象和重新連接支持,這在 Go 中似乎很難獲得,不一定是因?yàn)樵谶@種情況下我需要 RPC 支持.
1 回答
紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
Go Micro 被設(shè)計(jì)為每個(gè)服務(wù)的單個(gè)進(jìn)程,并初始化每個(gè)抽象之一。這是我們編寫軟件的 99% 用例的設(shè)計(jì)。有一些人想要多傳輸、多代理等,但這超出了項(xiàng)目的范圍,我認(rèn)為其他人可以輕松設(shè)計(jì)的東西,例如加載多個(gè)代理然后根據(jù)選項(xiàng)切換的代理或字首。
另外,我開發(fā)了一個(gè)加載多個(gè)代理來進(jìn)行消息聯(lián)合的服務(wù)。
- 1 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
