Я пытаюсь настроить брокера RabbitMQ с использованием инфраструктуры go-micro
.Я заметил, что интерфейс брокера в go-micro имеет broker.SubscriberOptions
struct , которая позволяет настраивать параметры, которые я ищу (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?