存储桶通知
MinIO 存储桶通知允许管理员在某些对象或存储桶事件发生时将通知发送到支持的外部服务。MinIO 支持与 Amazon S3 事件通知 类似的存储桶和对象级 S3 事件。
支持的通知目标
MinIO 支持将事件通知发布到以下目标
目标 |
描述 |
---|---|
AMQP (RabbitMQ) |
将通知发布到 AMQP 服务,例如 RabbitMQ。 有关教程,请参阅 将事件发布到 AMQP (RabbitMQ)。 |
MQTT |
将通知发布到 MQTT 服务。 有关教程,请参阅 将事件发布到 MQTT。 |
NATS |
将通知发布到 NATS 服务。 有关教程,请参阅 将事件发布到 NATS。 |
NSQ |
将通知发布到 NSQ 服务。 有关教程,请参阅 将事件发布到 NSQ |
Elasticsearch |
将通知发布到 Elasticsearch 服务。 有关教程,请参阅 将事件发布到 Elasticsearch。 |
Kafka |
将通知发布到 Kafka 服务。 有关教程,请参阅 将事件发布到 Kafka。 |
MySQL |
将通知发布到 MySQL 服务。 有关教程,请参阅 将事件发布到 MySQL。 |
PostgreSQL |
将通知发布到 PostgreSQL 服务。 有关教程,请参阅 将事件发布到 PostgreSQL。 |
Redis |
将通知发布到 Redis 服务。 有关教程,请参阅 将事件发布到 Redis。 |
webhook |
将通知发布到 Webhook 服务。 有关教程,请参阅 将事件发布到 Webhook。 |
异步与同步存储桶通知
版本 RELEASE.2023-06-23T20-26-00Z 中新增功能: MinIO 支持所有远程目标的异步(默认)或同步存储桶通知。
使用异步传递,MinIO 会在配置的远程位置触发事件,并且在继续执行下一个事件之前 *不会* 等待响应。异步存储桶通知优先考虑发送事件,但存在一些事件可能会丢失的风险,如果远程目标在传输或处理过程中出现瞬态问题。
使用同步投递时,MinIO 会先将事件发送到配置的远程目标,然后等待远程目标确认成功接收,再继续处理下一个事件。同步存储桶通知优先考虑事件的投递,但可能会导致事件发送速度变慢和队列积压。
要为**所有已配置的远程目标**启用同步存储桶通知,请使用以下任一设置:
将
MINIO_API_SYNC_EVENTS
环境变量设置为on
,并重新启动 MinIO 部署。将
api.sync_events
配置设置为on
,并重新启动 MinIO 部署。
注意
对于同步和异步事件,MinIO 会为每个远程目标维护一个队列,用于存储未发送和待处理的事件。队列限制默认为100000
。
当队列已满时,MinIO 会丢弃新的事件。
您可以根据需要增加队列大小,以更好地适应 MinIO 部署和远程目标的事件发送和处理速度。使用您的通知方法的QUEUE_LIMIT
环境变量或配置设置来修改此限制。
对于异步事件,MinIO 允许最多50000
个并发send
调用。
支持的 S3 事件类型
MinIO 存储桶通知与Amazon S3 事件通知兼容。本节列出了所有支持的事件。
对象事件
MinIO 支持在以下 S3 对象事件上触发通知:
指定通配符*
字符以选择与前缀相关的所有事件。
复制事件
MinIO 支持在以下 S3 复制事件上触发通知:
指定通配符*
字符以选择所有s3:Replication
事件。
ILM 转换事件
MinIO 支持在以下 S3 ILM 转换事件上触发通知:
指定通配符*
字符以选择与前缀相关的所有事件。
扫描程序事件
MinIO 支持在以下 S3 扫描程序转换事件上触发通知:
- s3:Scanner:ManyVersions
扫描程序 查找版本数超过 1000 个的对象。
- s3:Scanner:BigPrefix
扫描程序 查找子文件夹数超过 50000 个的前缀。
全局事件
MinIO 支持在以下全局事件上触发通知。您只能通过ListenNotification API 监听这些事件。