要实现 RocketMQ对特定topic消息的回调,你可以使用RocketMQ的Golang SDK。下面是一个简单的示例代码:
package main
import (
"fmt"
"github.com/apache/rocketmq-client-go/v2"
"github.com/apache/rocketmq-client-go/v2/consumer"
"github.com/apache/rocketmq-client-go/v2/primitive"
)
func main() {
c, _ := rocketmq.NewPushConsumer(
consumer.WithNameServer([]string{"127.0.0.1:9876"}),
)
err := c.Subscribe("your_topic", consumer.MessageSelector{}, func(ctx context.Context,
msgs ...*primitive.MessageExt) (consumer.ConsumeResult, error) {
// 处理接收到的消息
for _, msg := range msgs {
fmt.Printf("Received message: %v\n", msg)
}
return consumer.ConsumeSuccess, nil
})
if err != nil {
fmt.Println(err)
return
}
if err = c.Start(); err != nil {
fmt.Println(err)
return
}
select {}
}
上述示例中,我们创建了一个PushConsumer,并订阅了指定的topic。当有消息到达时,会执行回调函数来处理接收到的消息。你可以根据自己的需求,在回调函数中进行相应的逻辑处理。
注意:在使用该SDK之前,请确保已经正确安装并配置RocketMQ服务端,并且替换代码中的127.0.0.1:9876
为你实际使用的RocketMQ Name Server地址。
希望这能帮助到你!
内容由零声教学AI助手提供,问题来源于学员提问