package mq import "github.com/apache/rocketmq-client-go/v2" // ConsumerConfig 消费者配置 type ConsumerConfig struct { TopicName string // 必填,主题名称 // GroupName 必填,消费者分组名称,填写消费的业务名称,例如:CreatePay-创建支付单 // 实际注册时,会自动在前面加上TopicName GroupName string // ConsumerCnt,消费者个数,默认为1,不能超过MQ的消费Queue个数 // 需要保证顺序消费的场景才推荐使用,否则推荐配置PerCoroutineCnt参数来开启并发消费即可 ConsumerCnt int // PerCoroutineCnt 每个consumer的协程个数,默认为20,它与ConsumerCnt都能实现并发消费,区别在于此参数是一个消费者,多个协程并发消费,性能更高 // 由于是单消费者的并发处理,可能存在后拉取的比先拉取的先处理完,即无法保证严格的顺序消费要求(但大部分场景都没有顺序要求) // SDK在收到消息时会启动一个新协程运行回调函数,最大运行协程数不超过此配置 // 示例:2,则实际的并发数是4,正常消费2个,重试2个协程 PerCoroutineCnt int // RetryCnt 消费最大重试次数,间隔时间查看https://rocketmq.apache.org/zh/docs/featureBehavior/10consumerretrypolicy // 我们默认为38次,目的是给异常业务方保留最多48小时去修复,超过之后进入死信队列,3天后会被自动删除 RetryCnt *int // 指定消费的tag,为空则消费所有tag Tags []string //消费者实例 pushConsumers []rocketmq.PushConsumer }