我正在尝试使用 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 关注
- 88 浏览
添加回答
举报
0/150
提交
取消