文档

Kafka 通知设置

本页面记录了将 Kafka 服务配置为 Bucket Notifications 目标的相关设置。 有关如何使用这些设置的教程,请参见 将事件发布到 Kafka

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。

  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

Important

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 Kafka 目标

你可以在顶层键后附加唯一标识符 _ID,为每组相关的 Kafka 设置指定多个 Kafka 服务端点。

示例

例如,以下命令分别将两个不同的 Kafka 服务端点设置为 PRIMARYSECONDARY

export MINIO_NOTIFY_KAFKA_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_KAFKA_BROKERS_PRIMARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"

export MINIO_NOTIFY_KAFKA_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_KAFKA_BROKERS_SECONDARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
mc admin config set notify_kafka:primary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

mc admin config set notify_kafka:secondary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

请注意,对于配置设置,唯一标识符只附加到 notify_kafka,而不是附加到每个单独参数。

设置

启用

必需

MINIO_NOTIFY_KAFKA_ENABLE

指定 on 以启用将存储桶通知发布到 Kafka 服务端点。

默认为 off

notify_kafka

用于定义 Kafka 服务端点并与 MinIO bucket notifications 配合使用的顶层配置键。

使用 mc admin config set 设置或更新 Kafka 服务端点。 对于每个目标,brokers 参数都是*必需*的。 其他可选参数请以空白字符(" ")分隔的列表形式指定。

mc admin config set notify_kafka \
  brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
  [ARGUMENT="VALUE"] ... \

Brokers

必需

MINIO_NOTIFY_KAFKA_BROKERS
notify_kafka brokers

指定以逗号分隔的 Kafka broker 地址列表。 例如:

"kafka1.example.com:2021,kafka2.example.com:2021"

Changed in version RELEASE.2023-05-27T05-56-19Z: 在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

Topic

可选

MINIO_NOTIFY_KAFKA_TOPIC
notify_kafka topic

指定 MinIO 发布存储桶事件的 Kafka topic 名称。

SASL

可选

MINIO_NOTIFY_KAFKA_SASL
notify_kafka sasl

指定 on 以启用 SASL 身份验证。

SASL Username

可选

MINIO_NOTIFY_KAFKA_SASL_USERNAME
notify_kafka sasl_username

指定用于对 Kafka broker 执行 SASL/PLAIN 或 SASL/SCRAM 身份验证的用户名。

SASL Password

可选

MINIO_NOTIFY_KAFKA_SASL_PASSWORD
notify_kafka sasl_password

指定用于对 Kafka broker 执行 SASL/PLAIN 或 SASL/SCRAM 身份验证的密码。

Changed in version RELEASE.2023-06-23T20-26-00Z: 当此值作为 mc admin config get 返回结果的一部分时,MinIO 会对其进行脱敏。

SASL Mechanism

可选

MINIO_NOTIFY_KAFKA_SASL_MECHANISM
notify_kafka sasl_mechanism

指定用于对 Kafka broker 进行身份验证的 SASL 机制。 MinIO 支持以下机制:

  • ``PLAIN``(默认)

  • SHA256

  • SHA512

TLS Client Auth

可选

MINIO_NOTIFY_KAFKA_TLS_CLIENT_AUTH
notify_kafka tls_client_auth

指定 Kafka broker 的客户端身份验证类型。 下表列出了支持的取值及其映射关系

身份验证类型

0

NoClientCert

1

RequestClientCert

2

RequireAnyClientCert

3

VerifyClientCertIfGiven

4

RequireAndVerifyClientCert

有关各客户端身份验证类型的更多信息,请参见 ClientAuthType

TLS

可选

MINIO_NOTIFY_KAFKA_TLS
notify_kafka tls

指定 on 以启用与 Kafka broker 的 TLS 连接。

TLS Skip Verify

可选

MINIO_NOTIFY_KAFKA_TLS_SKIP_VERIFY
notify_kafka tls_skip_verify

启用或禁用对 NATS 服务端点 TLS 证书的 TLS 验证。

  • 指定 on 以禁用 TLS 验证(默认)。

  • 指定 off 以启用 TLS 验证。

Client TLS Cert

可选

MINIO_NOTIFY_KAFKA_CLIENT_TLS_CERT
notify_kafka client_tls_cert

指定客户端证书路径,用于对 Kafka broker 执行 mTLS 身份验证。

Client TLS Key

可选

MINIO_NOTIFY_KAFKA_CLIENT_TLS_KEY
notify_kafka client_tls_key

指定客户端私钥路径,用于对 Kafka broker 执行 mTLS 身份验证。

Version

可选

MINIO_NOTIFY_KAFKA_VERSION
notify_kafka version

指定在对 Kafka 集群执行操作时假定的 Kafka 集群版本。 有关此字段行为的更多信息,请参见 sarama reference documentation

Batch Size

可选

MINIO_NOTIFY_KAFKA_BATCH_SIZE
notify_kafka batch_size

指定整数值,作为向 Kafka 发送记录时的 batch size

Changed in version RELEASE.2023-12-02T10-51-33Z: MinIO 先前将此值限制为 100

Queue Directory

可选

MINIO_NOTIFY_KAFKA_QUEUE_DIR
notify_kafka queue_dir

指定目录路径以启用 MinIO 对未投递消息的持久化事件存储,例如 /opt/minio/events

当 Kafka server/broker 离线时,MinIO 会将未投递事件存储在指定存储中,并在连接恢复后重放这些已存储事件。

Queue Limit

可选

MINIO_NOTIFY_KAFKA_QUEUE_LIMIT
notify_kafka queue_limit

指定未投递消息的最大限制。 默认为 100000

Comment

可选

MINIO_NOTIFY_KAFKA_COMMENT
notify_kafka comment

指定与 Kafka 配置关联的注释。

Compression Codec

New in version MinIO: Server RELEASE.2023-12-09T18-17-51Z

可选

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_CODEC
notify_kafka compression_codec

指定向 Kafka 发送记录时使用的压缩编解码器。

支持以下取值:

  • none

  • snappy

  • gzip

  • lz4

  • zstd

Compression Level

New in version MinIO: Server RELEASE.2023-12-09T18-17-51Z

可选

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_LEVEL
notify_kafka compression_level

根据已配置的压缩编解码器控制应用的压缩级别。

指定大于或等于 0 的整数值。 该值的效果取决于所选编解码器。