参数
请参阅插件通用配置,了解所有插件通用的配置选项。
broker_list
已废弃,请改用
brokers。Kafka broker 主机及其端口的映射。broker_list和brokers二选一配置。brokers
有效值:
大于 0
Kafka broker 节点列表。
brokers和已废弃的broker_list二选一配置。host
Kafka broker 的主机。
port
Kafka broker 的端口。
sasl_config
Kafka broker 的 SASL 配置。
mechanism
有效值:
PLAIN、SCRAM-SHA-256或SCRAM-SHA-512SASL 配置的机制。
SCRAM-SHA-256和SCRAM-SHA-512选项在 API7 企业版 3.8.16 及更高版本和 APISIX 3.15.0 及更高版本中可用。user
SASL 配置的用户名。
password
SASL 配置的密码。该值在存储到 etcd 前会使用 AES 加密。
tls
连接 Kafka broker 时使用的 TLS 配置。配置该对象即表示以 TLS 连接;不配置则以明文连接。自 API7 企业版 3.9.x 系列的 3.9.17 版本起可用,3.10.x 系列自 3.10.4 版本起可用;在 APISIX 中自 3.18.0 版本起可用。
verify
如果为 true,则根据已配置的受信任 CA 校验 Kafka broker 的 TLS 证书。
默认值为
false,此时配置tls只会加密连接,但不会校验 broker 身份,存在中间人攻击风险。生产环境请设置为true。
kafka_topic
用于组织推送日志的目标主题。
producer_type
有效值:
async或syncKafka 生产者模式。在
async模式下,消息会先在本地缓冲,再发送到 Kafka;在sync模式下,消息不会使用异步生产者缓冲区,而是直接发送。required_acks
api_version
有效值:
0、1或2向 broker 发送消息时使用的 Kafka Produce API 版本。只有版本
2会携带消息时间戳,使 broker 能够存储它;使用默认值1时,消息可能在没有可用时间戳的情况下被记录。版本2要求 Kafka 0.10 或更高版本。自 API7 企业版 3.9.14、3.10.1 和 APISIX 3.18.0 起引入。key
用于为消息分配分区的键。
timeout
有效值:
大于 0
上游发送数据的超时时间。
meta_format
log_format_extra
用于向默认日志条目添加额外字段,使用 JSON 格式的键值对。值可引用内置变量。已配置的字段不会覆盖现有默认字段。插件实例优先于插件元数据;在实例上设置空对象会禁用元数据值。配置
log_format时,log_format_extra会被忽略。自 API7 企业版 3.9.15、3.10.2 和 APISIX 3.18.0 起引入。include_req_body
如果为 true,则在日志中包含请求体。请注意,如果请求体太大而无法保存在内存中,由于 NGINX 的限制,它无法被记录。
include_req_body_expr
一个或多个 APISIX 表达式 形式的条件数组。当
include_req_body为 true 时使用。仅当此处配置的表达式评估为 true 时,才会记录请求体。max_req_body_bytes
有效值:
大于或等于 1
允许的最大请求体(以字节为单位)。在此限制内的请求体将被推送到 Kafka。如果大小超过配置的值,则在推送到 Kafka 之前将截断该主体。
include_resp_body
如果为 true,则在日志中包含响应体。
include_resp_body_expr
一个或多个 APISIX 表达式 形式的条件数组。当
include_resp_body为 true 时使用。仅当此处配置的表达式评估为 true 时,才会记录响应体。max_resp_body_bytes
有效值:
大于或等于 1
允许的最大响应体(以字节为单位)。在此限制内的响应体将被推送到 Kafka。如果大小超过配置的值,则在推送到 Kafka 之前将截断该主体。
cluster_name
有效值:
大于或等于 1
集群名称。当有两个或多个 Kafka 集群时使用。仅当
producer_type设置为async时有效。producer_batch_num
producer_batch_size
producer_max_buffering
有效值:
大于或等于 1
异步生产者可在本地缓冲的 Kafka 生产者消息数上限。与 lua-resty-kafka 中的
max_buffering参数相同。此缓冲区不受max_pending_entries限制;内存用量还取决于 worker 数量、batch_max_size、日志格式,以及是否记录请求体或响应体。producer_time_linger
meta_refresh_interval
name