文档

PostgreSQL 通知设置

此页面记录了配置 POSTGRES 服务作为 存储桶通知 目标的设置。请参阅 将事件发布到 PostgreSQL,了解有关使用这些设置的教程。

您可以通过定义以下内容来建立或修改设置

  • 在启动或重新启动 MinIO 服务器之前,在主机系统上设置一个 环境变量。有关如何定义环境变量,请参阅您操作系统的文档。

  • 使用 mc admin config set 设置一个 配置设置

  • 使用 MinIO 控制台的 管理员 > 设置 页面设置一个 配置设置

如果同时定义了环境变量和类似的配置设置,则 MinIO 使用环境变量值。

某些设置仅具有环境变量或配置设置,而不是两者兼而有之。

重要

每个配置设置都控制着 MinIO 的基本行为和功能。MinIO **强烈建议**在将配置更改应用于生产环境之前,在较低的环境(例如 DEV 或 QA)中进行测试。

多个 PostgreSQL 目标

您可以通过为每组相关的PostgreSQL设置附加一个唯一的标识符_ID到顶级键来指定多个PostgreSQL服务端点。例如,以下命令分别将两个不同的PostgreSQL服务端点设置为PRIMARYSECONDARY

set MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY="on"
set MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_PRIMARY="host=postgresql-endpoint.example.net port=4222..."
set MINIO_NOTIFY_POSTGRES_TABLE_PRIMARY="minioevents"
set MINIO_NOTIFY_POSTGRES_FORMAT_PRIMARY="namespace"

set MINIO_NOTIFY_POSTGRES_ENABLE_SECONDARY="on"
set MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_SECONDARY="host=postgresql-endpoint.example.net port=4222..."
set MINIO_NOTIFY_POSTGRES_TABLE_SECONDARY="minioevents"
set MINIO_NOTIFY_POSTGRES_FORMAT_SECONDARY="namespace"
mc admin config set notify_postgres:primary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_postgres:secondary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

使用这些设置,MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY表示环境变量与ID为PRIMARY的PostgreSQL服务端点相关联。

设置

启用

必需

MINIO_NOTIFY_POSTGRES_ENABLE

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

默认为off

如果设置为on,则需要指定以下其他环境变量

notify_postgres

用于定义PostgreSQL服务端点以与MinIO存储桶通知一起使用的顶级配置键。

使用mc admin config set设置或更新PostgreSQL服务端点。以下参数对于每个目标都是必需

指定其他可选参数作为空格(" ")分隔的列表。

mc admin config set notify_postgres                            \
  connection_string="host=postgresql.example.com port=5432..." \
  table="minioevents"                                          \
  format="namespace"                                           \
  [ARGUMENT="VALUE"] ...

连接字符串

必需

MINIO_NOTIFY_POSTGRES_CONNECTION_STRING
notify_postgres connection_string

指定PostgreSQL服务端点的URI连接字符串。MinIO支持key=value格式的PostgreSQL连接字符串。例如

"host=https://postgresql.example.com port=5432 ..."

有关支持的PostgreSQL连接字符串参数的更完整文档,请参阅PostgreSQL连接字符串文档

版本RELEASE.2023-05-27T05-56-19Z中已更改: 在添加目标之前,MinIO会检查指定URL的健康状况(如果可解析且可访问)。如果现有目标脱机,MinIO不再阻止添加新的通知目标。

必需

MINIO_NOTIFY_POSTGRES_TABLE
notify_postgres table

指定MinIO发布事件通知的PostgreSQL表的名称。

格式

必需

MINIO_NOTIFY_POSTGRES_FORMAT
notify_postgres format

指定写入PostgreSQL服务端点的事件数据的格式。MinIO支持以下值

命名空间

对于每个存储桶事件,MinIO都会创建一个JSON文档,其中包含事件中的存储桶和对象名称作为文档ID,以及事件本身作为文档主体的一部分。对该对象的额外更新会修改该对象的现有表条目。类似地,删除对象也会删除相应的表条目。

访问

对于每个存储桶事件,MinIO都会创建一个包含事件详细信息的JSON文档,并使用PostgreSQL生成的随机ID将其附加到表中。对对象的额外更新会导致新的索引条目,而现有条目保持不变。

最大打开连接数

可选

MINIO_NOTIFY_POSTGRES_MAX_OPEN_CONNECTIONS
notify_postgres max_open_connections

指定到PostgreSQL数据库的最大打开连接数。

默认为2

队列目录

可选

MINIO_NOTIFY_POSTGRES_QUEUE_DIR
notify_postgres queue_dir

指定目录路径以启用MinIO的持久事件存储,用于未送达的消息,例如/opt/minio/events

当PostgreSQL服务器/代理脱机时,MinIO会将未送达的事件存储在指定的存储中,并在连接恢复时重放存储的事件。

队列限制

可选

MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT
notify_postgres queue_limit

指定未送达消息的最大限制。默认为100000

注释

可选

MINIO_NOTIFY_POSTGRES_COMMENT
notify_postgres comment

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