我正在嘗試使用 Go Micro 框架編寫一個微服務,該框架將從 RabbitMQ 代理消費并寫入另一個。Go Micro 有一個 RabbitMQ 插件,但似乎如果想使用 Go Micro 抽象(例如micro.RegisterSubscriber),就必須依賴庫內部的許多全局狀態。我最終設置了一個消費者使用micro.RegisterSubscriber,然后手動創建一個單獨的代理,注意不要使用任何內部全局狀態(例如默認交換),然后broker.Publish在消費者函數內調用,這意味著我必須在發送消息之前手動編組消息。這不是 Go Micro 支持的模式嗎?有沒有更好的方法來做這樣的事情?我應該提到,在這種特殊情況下選擇 Go Micro 的主要原因是因為它似乎具有可靠的 RabbitMQ 抽象和重新連接支持,這在 Go 中似乎很難獲得,不一定是因為在這種情況下我需要 RPC 支持.
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
Go Micro 被設計為每個服務的單個進程,并初始化每個抽象之一。這是我們編寫軟件的 99% 用例的設計。有一些人想要多傳輸、多代理等,但這超出了項目的范圍,我認為其他人可以輕松設計的東西,例如加載多個代理然后根據選項切換的代理或字首。
另外,我開發了一個加載多個代理來進行消息聯合的服務。
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消