stack-labs / questions

任何关于Micro的问题都可以在Issue中创建
27 stars 6 forks source link

请问在go micro使用go-plugins的broker后,如何使用像Ack,Unsubscribe 函数? #49

Open theoneLee opened 4 years ago

theoneLee commented 4 years ago

如题所示,例如我使用 https://github.com/micro/go-plugins/blob/master/broker/kafka/kafka.go 插件,然后我该怎么配置手动ack,调用ack和Unsubscribe等函数呢?

我找了下官网英文文档,和micro-in-cn里的找不到相关的demo。

thx。

theoneLee commented 4 years ago

更多的。我想使用go micro plugins上引用的"github.com/Shopify/sarama"的kafka包的特性的话,该怎么使用?

printfcoder commented 4 years ago

Hi,broker.Subscribe会返回一个Subscriber与一个error,通常error可以忽略,Subscriber有Ack和Unsubscribe接口,如果中间件支持就直接调用即可。

其它特性非broker声明的无法使用。broker只是用这些中间件收发消息的能力,并没有全盘使用它们。

crazybber commented 4 years ago

建议你考虑自行扩展broker plugin 以便订制你需要的更多功能和特性。

theoneLee commented 4 years ago

Hi,broker.Subscribe会返回一个Subscriber与一个error,通常error可以忽略,Subscriber有Ack和Unsubscribe接口,如果中间件支持就直接调用即可。

其它特性非broker声明的无法使用。broker只是用这些中间件收发消息的能力,并没有全盘使用它们。

可以给一个更详细的代码demo么?有可运行的demo最好了。 因为我看已有demo上的都是使用这个方式micro.RegisterSubscriber("example.topic.pubsub.1", service.Server(), new(Sub)),我有追进去大概看了下,但是没理清楚,譬如我调用了bro,_ :=broker.DefaultBroker.Subscribe("example.topic.pubsub.3", Sub)后,我该怎么把这个bro与micro.NewService的service绑定呢?另外一个就是,这个Sub是需要Handler类型的参数,与上面的micro.RegisterSubscriber所需要的参数是不一致的。我该怎么构造这个参数?