rocketmq
rocketmq
rocketmq sink 可以将日志数据发送至下游 RocketMQ 。
Example
sink:
type: rocketmq
nameServer:
- 127.0.0.1:9876
topic: "log-${fields.topic}"
nameServer
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| nameServer | string 数组 | 非必填 | 无 | RocketMQ nameserver addr 列表 |
nsResolver
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| nsResolver | string 数组 | 非必填 | 无 | 用于获取 nameserver addr 的 reslover 列表 |
注意:nameServer 和 nsResolver 二选一,必须要设置一个
topic
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| topic | string | 必填 | loggie | 发送日志至 RocketMQ 的 topic |
可使用 ${a.b} 的方式,获取 event 里的字段值作为具体的 topic 名称。
比如,一个 event 为:
{
"topic": "loggie",
"hello": "world"
}
可配置 topic: ${topic},此时该 event 发送到 RocketMQ 的 topic 为 “loggie”。
同时支持嵌套的选择方式:
{
"fields": {
"topic": "loggie"
},
"hello": "world"
}
可配置 topic: ${fields.topic},同样也会发送到 topic “loggie”。
ifRenderTopicFailed
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| ifRenderTopicFailed | object | 非必填 | 配置 topic 动态渲染失败的动作参数 | |
| ifRenderTopicFailed.dropEvent | bool | 非必填 | true | 是否丢弃此消息 |
| ifRenderTopicFailed.ignoreError | bool | 非必填 | false | 是否忽略错误 |
| ifRenderTopicFailed.defaultValue | string | 非必填 | 无 | 渲染失败时使用的默认配置的 topic 值 |
group
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| group | string | 非必填 | DEFAULT_PRODUCER | 同一类 Producer 的集合,这类 Producer 发送同一类消息且发送逻辑一致 |
tag
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| tag | string | 非必填 | 无 | 为消息设置的标志,用于同一主题下区分不同类型的消息,可理解为二级消息类型,用来进一步区分某个 Topic 下的消息分类 |
RocketMQ 有对 tag 能力的支持,因此,类似 topic,tag 也可使用 ${a.b} 的方式,获取 event 里的字段值作为具体的 tag 名称。
比如,一个 event 为:
{
"tag": "loggie",
"hello": "world"
}
可配置 tag: ${tag},此时该 RocketMQ 的消息的 tag 为 “loggie”。
同时支持嵌套的选择方式:
{
"fields": {
"tag": "loggie"
},
"hello": "world"
}
可配置 tag: ${fields.tag},同样也会配置消息的 tag 为 “loggie”。
ifRenderTagFailed
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| ifRenderTagFailed | object | 非必填 | 配置 tag 动态渲染失败的动作参数 | |
| ifRenderTagFailed.dropEvent | bool | 非必填 | true | 是否丢弃此消息 |
| ifRenderTagFailed.ignoreError | bool | 非必填 | false | 是否忽略错误 |
| ifRenderTagFailed.defaultValue | string | 非必填 | 无 | 渲染失败时使用的默认配置的 tag 值 |
注意:因为 tag 是非必须参数,默认为空,因此,只有配置了 tag 并且渲染失败时,ifRenderTagFailed 参数才会生效
messageKeys
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| messageKeys | string 数组 | 非必填 | 无 | 消息的业务标识,由消息生产者(Producer)设置,唯一 标识某个业务逻辑,比如以订单 ID 为 key |
retry
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| retry | int | 非必填 | 2 | 重试次数 |
sendMsgTimeout
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| sendMsgTimeout | time.Duration | 非必填 | 3s | 消息发送的超时时间 |
compressLevel
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| compressLevel | int | 非必填 | 5 | 消息的压缩登记,取值范围:0 1 2 3 4 5 6 7 8 9 |
compressMsgBodyOverHowmuch
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| compressMsgBodyOverHowmuch | int | 非必填 | 4096 | 消息Body超过多大开始压缩(Consumer收到消息会自动解压缩),单位字节 |
topicQueueNums
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| topicQueueNums | int | 非必填 | 4 | 在发送消息,自动创建服务器不存在的topic时,默认创建的队列数 |
credentials
credentials 用于 RocketMQ 开启了 ACL 权限控制的场景
字段 |
类型 |
是否必填 |
默认值 |
含义 |
|---|---|---|---|---|
| credentials | object | 非必填 | 无 | 客户端用于身份验证的凭证信息,仅在服务端开启身份识别和认证时需要传输 |
| credentials.accessKey | string | 必填 | 无 | accessKey |
| credentials.accessKey | string | 必填 | 无 | secretKey |
| credentials.securityToken | string | 非必填 | 无 | secretKey |
