33 lines
1.5 KiB
Go
33 lines
1.5 KiB
Go
|
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
|
|||
|
}
|