mirror of https://github.com/loggie-io/docs.git
doc: add docs for rocketmq sink (#160)
Signed-off-by: hansedong <admin@yinxiaoluo.com>
This commit is contained in:
parent
e131798cc6
commit
a89a32983a
|
|
@ -0,0 +1,162 @@
|
||||||
|
# rocketmq
|
||||||
|
|
||||||
|
rocketmq sink 可以将日志数据发送至下游 [RocketMQ](https://github.com/apache/rocketmq) 。
|
||||||
|
|
||||||
|
!!! example
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
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 为:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"topic": "loggie",
|
||||||
|
"hello": "world"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
可配置 `topic: ${topic}`,此时该 event 发送到 RocketMQ 的 topic 为 "loggie"。
|
||||||
|
|
||||||
|
同时支持嵌套的选择方式:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"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 为:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"tag": "loggie",
|
||||||
|
"hello": "world"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
可配置 `tag: ${tag}`,此时该 RocketMQ 的消息的 tag 为 "loggie"。
|
||||||
|
|
||||||
|
同时支持嵌套的选择方式:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"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 |
|
||||||
Loading…
Reference in New Issue