2

我正在尝试使用该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.SubscriberOptionsrabbitmq.NewBroker允许设置broker.Options,但再一次,不是broker.SubscriberOptions

我已经挖掘了 go-micro 的代码,但无法弄清楚该broker.Subscribe方法(公开正确的结构)是如何被调用或由谁调用的。

这可能吗?是不是 API 中还没有完全充实的东西?

4

0 回答 0