6.4. 配置通知以报告连接器状态
Debezium 通知提供了一种获取有关连接器的状态信息的机制。通知可发送到以下频道:
- SinkNotificationChannel
- 通过 Connect API 将通知发送到配置的主题。
- LogNotificationChannel
- 通知附加到日志中。
- JmxNotificationChannel
- 通知作为 JMX Bean 中的属性公开。
- 有关 Debezium 通知的详情,请查看以下主题
6.4.1. Debezium 通知格式的描述 复制链接链接已复制到粘贴板!
通知消息包含以下信息:
| 属性 | Description |
|---|---|
| id |
分配给通知的唯一标识符。对于增量快照通知, |
| aggregate_type | 与通知相关的聚合根的数据类型。在域驱动的设计中,导出的事件应始终引用聚合。 |
| type |
提供有关 |
| additional_data | a Map<String,String>,其中包含有关通知的详细信息。例如,请参阅 Debezium 通知增量快照的进度。 |
| timestamp | 通知创建的时间。该值表示自 UNIX 时期起的毫秒数。 |
6.4.2. Debezium 通知类型 复制链接链接已复制到粘贴板!
Debezium 通知提供有关 初始快照 进度的信息 或增量快照。
有关初始快照状态的 Debezium 通知
以下示例显示了提供初始快照状态的典型通知:
{
"id": "5563ae14-49f8-4579-9641-c1bbc2d76f99",
"aggregate_type": "Initial Snapshot",
"type": "COMPLETED",
"additional_data" : {
"connector_name": "myConnector"
},
"timestamp": "1695817046353"
}
| 项 | 描述 |
|---|---|
| 1 |
|
下表显示了报告初始快照状态的通知中可能出现的不同有效负载的示例:
| Status | payload |
|---|---|
| STARTED |
|
| IN_PROGRESS |
MongoDB 连接器目前不支持字段 |
| TABLE_SCAN_COMPLETED |
在前面的示例中,
MongoDB 连接器目前不支持 fields |
| 完成 |
|
| ABORTED |
|
| 跳过 |
|
6.4.2.1. 示例:用于报告增量快照进度的 Debezium 通知 复制链接链接已复制到粘贴板!
下表显示了可能出现在通知中报告增量快照状态的不同有效负载示例:
| Status | payload |
|---|---|
| Start |
|
| paused |
|
| resumed |
|
| 已停止 |
|
| 处理块 |
|
| 为表完成快照 |
在前面的示例中,
|
| 完成 |
|
6.4.3. 启用 Debezium 向通知频道发送事件 复制链接链接已复制到粘贴板!
要启用 Debezium 来发出通知,请通过设置 notification.enabled.channels 配置属性来指定通知频道列表。默认情况下,以下通知频道可用:
-
sink -
log -
jmx
要使用 sink 通知频道,还必须将 notification.sink.topic.name 配置属性设置为您要 Debezium 发送通知的主题名称。
6.4.3.1. 启用 Debezium 通知来报告通过 JMX Bean 公开的事件 复制链接链接已复制到粘贴板!
要启用 Debezium 来报告通过 JMX Bean 公开的事件,请完成以下配置步骤:
- 启用 JMX MBean 服务器 以公开通知 Bean。
-
将
jmx添加到连接器配置中的notification.enabled.channels属性中。 - 将您的首选 JMX 客户端连接到 MBean 服务器。
通知通过名为 debezium 的 bean 的 。
Notifications 属性公开。<connector-type& gt; .management.notifications. <server>
下图显示了报告增量快照开始的通知:
要丢弃通知,请在 bean 上调用 reset 操作。
通知也作为 JMX 通知公开,类型为 debezium.notification。要让应用程序侦听 MBean 发出的 JMX 通知,请将 应用程序订阅到通知。