Siddhi CDC Postgres应用程序不接受自定义slot.name



我已经为Debezium Postgres连接器提供了以下配置并注册了它。配置如下

{
"name": "shipments-connector",  
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"slot.name":"postslot",
"plugin.name": "pgoutput",
"database.hostname": "postgres",
"database.port": "5432",
"database.user": "postgresuser",
"database.password": "postgrespw",
"database.dbname" : "shipment_db",
"database.server.name": "postgres",
"table.include.list": "public.shipments" ,
"snapshot.mode":"always",
"publication.autocreate.mode":"filtered"
}

这个自定义slot.name也在数据库中

shipment_db=#从pg_replication_slot中选择*;

slot_name|plugin|slot_type|datoid|database|temporary|active|active_pid|xmin|catalog_xmin|restart_lsn|confirmed_flush_lsn|wal_status|safe_wal_size-----------+----------+-----------+--------+-------------+-----------+--------+------------+------+--------------+-------------+---------------------+------------+---------------postslot|pgoutput|logical|16384|shipment_db|f|t|110061||556|0/16D2BE0|0/16D3E90|保留|
debezium|pgoutoutput|logic |16384| shipment_db |f|t |19401|||559|0/16D4CE8|0/16DDCE8|保留|
(2行(

但当我运行siddhi应用程序并向表中插入一些数据时,它只显示第一次插入操作的日志,而不显示其他插入操作的记录我得到了以下第一次插入的日志。

[2022-08-17 16:05:31430]信息{io.debezium.connecter.postgresql.connection.WalPositionLocator}-收到第一个LSN"LSN{0/16D4028}"〔2022-08-17 16:05:31430〕信息{io.debezium.connecter.postgresql.PostgresStreamingChangeEventSource}-发现WAL恢复位置"LSN{0/16D4028}"〔2022-08-17 16:05:31432〕信息{io.debezium.jdbc.JdbcConnection}-连接正常关闭〔2022-08-17 16:05:31442〕信息{io.debezium.connecter.postgresql.connection.PostgresReplicationConnection}-正在初始化PgOutput逻辑解码器发布〔2022-08-17 16:05:31456〕信息{io.debezium.connecter.postgresql.PostgresStreamingChangeEventSource}-处理消息〔2022-08-17 16:05:31459〕信息{io.debezium.connecter.postgresql.connection.WalPositionLocator}-LSN为"LSN{0/16D4028}"的消息到达,关闭过滤〔2022-08-17 16:05:31483〕信息{io.debezium.jdbc.JdbcConnection}-连接正常关闭

这意味着siddhi应用程序采用了slot.name的默认值(=debezium(。由于postgreSQL在slot.name为debezium时只能从单个插槽创建一个连接,因此它不会为其他插入操作提供日志。那么我能知道siddhi CDC应用程序采用自定义slot.name而不是默认slot.name的方法吗

您可以在定义cdc源时提供slot.name作为参数。请查看以下文档[1]。

[1] https://siddhi-io.github.io/sidhi-io-cdc/api/2.0.12/

相关内容

  • 没有找到相关文章

最新更新