文件

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 支援 PostgreSQL 連線字串的 key=value 格式。例如

"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 支援下列值

namespace

對於每個儲存桶事件,MinIO 會建立一個 JSON 文件,其中包含事件的儲存桶和物件名稱作為文件 ID,而實際事件作為文件主體的一部分。對該物件的其他更新會修改該物件的現有資料表項目。同樣地,刪除物件也會刪除對應的資料表項目。

access

對於每個儲存桶事件,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 設定相關聯的註解。