【问题标题】:How to report events in real time with Debezium Sql Server Connector for Apache Camel?如何使用 Debezium Sql Server Connector for Apache Camel 实时报告事件?
【发布时间】:2021-03-26 06:11:24
【问题描述】:

我正在尝试通过以下 Spring Boot 启动器使用 Debezium Sql Server Connector for Apache Camel 将更改从一个数据库复制到另一个数据库:

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-spring-boot-starter</artifactId>
    <version>3.5.0</version>
</dependency>
<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-debezium-sqlserver-starter</artifactId>
    <version>3.5.0</version>
</dependency>

到目前为止,我只是将生成的事件记录到特定表中:

import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;

@Component
public class MyRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("debezium-sqlserver:iwd" +
                "?databaseHostname=localhost" +
                "&databasePort=1433" +
                "&databaseServerName=iwd" +
                "&databaseDbname=iwd" +
                "&databaseUser=sa" +
                "&databasePassword=MyPassword-1" +
                "&tableWhitelist=dbo.MyTable-1" +
                "&offsetStorageFileName=./offset-file-1.dat" +
                "&databaseHistoryFileFilename=./history-file-1.dat")
        .routeId(MyRoute.class.getName() + ".DatabaseReader")
        .log(LoggingLevel.INFO, "Incoming message ${body} with headers ${headers}");
    }
}

在初始化应用程序时,它会为表的每一行报告一个事件,问题是稍后它不会实时报告事件,例如,如果我在表中插入或更新一行。

【问题讨论】:

标签: java sql-server spring-boot apache-camel debezium


【解决方案1】:

请关注https://debezium.io/documentation/reference/1.3/connectors/sqlserver.html#setting-up-sqlserver 并确保:

  • 已为数据库启用 CDC

    USE MyDB
    GO
    EXEC sys.sp_cdc_enable_db
    GO
    
  • CDC 已为您要捕获的表启用

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'dbo',
    @source_name   = N'MyTable',
    @role_name     = N'MyRole',
    GO
    
  • SQL Server 代理正在运行

  • Debezium 用户具有读取源和更改表的权限

【讨论】:

    猜你喜欢
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多