apisix/doc/plugins/kafka-logger-cn.md
2020-03-25 08:26:45 +08:00

3.5 KiB
Raw Blame History

Summary

定义

kafka-logger 是一个插件可用作ngx_lua nginx模块的Kafka客户端驱动程序。

这将提供将Log数据请求作为JSON对象发送到外部Kafka集群的功能。

属性列表

属性名称 必选项 描述
broker_list 必要的 一系列的Kafka经纪人。
kafka_topic 必要的 定位主题以推送数据。
timeout 可选的 上游发送数据超时。
async 可选的 布尔值,用于控制是否执行异步推送。
key 必要的 消息的密钥。
max_retry 可选的 没有重试次数。

信息

异步与同步数据推送之间的区别。

  1. 同步模型

    如果成功,则返回当前代理和分区的偏移量(** cdataLL **)。 如果发生错误,则返回“ nil”并带有描述错误的字符串。

  2. 在异步模型中

    消息将首先写入缓冲区。 当缓冲区超过batch_num它将发送到kafka服务器 或每个flush_time刷新缓冲区。

    如果成功,则返回“ true”。 如果出现错误,则返回“ nil”并带有描述错误的字符串“缓冲区溢出”

样本经纪人名单

此插件支持一次推送到多个经纪人。如以下示例所示指定外部kafka服务器的代理以使此功能生效。

{
    "127.0.0.1":9092,
    "127.0.0.1":9093
}

如何开启

  1. 这是有关如何为特定路由启用kafka-logger插件的示例。
curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "foo",
    "plugins": {
       "kafka-logger": {
           "broker_list" :
             {
               "127.0.0.1":9092
             },
           "kafka_topic" : "test2",
           "key" : "key1"
       }
    },
    "upstream": {
       "nodes": {
           "127.0.0.1:1980": 1
       },
       "type": "roundrobin"
    },
    "uri": "/hello"
}'

测试插件

  • 成功:
$ curl -i http://127.0.0.1:9080/hello
HTTP/1.1 200 OK
...
hello, world

禁用插件

当您要禁用kafka-logger插件时这很简单您可以在插件配置中删除相应的json配置无需重新启动服务它将立即生效

$ curl http://127.0.0.1:2379/apisix/admin/routes/1 -X PUT -d value='
{
    "methods": ["GET"],
    "uri": "/hello",
    "plugins": {},
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'