我正在尝试使用该go-micro
框架配置 RabbitMQ 代理。我注意到 go-micro 中的代理接口有一个broker.SubscriberOptions
结构,它允许配置我正在寻找的参数(AutoAck、队列名称等)但是我无法弄清楚在启动代理时如何传递它。
这就是一个简单的兔子 go-micro 设置的样子
package main
import (
"log"
"github.com/micro/go-micro/server"
"github.com/micro/go-plugins/broker/rabbitmq"
micro "github.com/micro/go-micro"
)
func main() {
// Create a new service. Optionally include some options here.
service := micro.NewService(
micro.Name("go-micro-rabbit"),
micro.Broker(rabbitmq.NewBroker()),
)
// Init will parse the command line flags.
service.Init()
// Register handler
proto.RegisterGreeterHandler(service.Server(), new(Greeter))
micro.RegisterSubscriber("micro-exchange", service.Server(), myFunc, server.SubscriberQueue("my-queue"))
// Run the server
if err := service.Run(); err != nil {
log.Fatal(err)
}
}
该micro.RegisterSubscriber
方法接受一个列表,server.SubscriberOption
但不允许我设置broker.SubscriberOptions
和rabbitmq.NewBroker
允许设置broker.Options
,但再一次,不是broker.SubscriberOptions
我已经挖掘了 go-micro 的代码,但无法弄清楚该broker.Subscribe
方法(公开正确的结构)是如何被调用或由谁调用的。
这可能吗?是不是 API 中还没有完全充实的东西?