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 |