Flink CDC中由以下原因引起:我看API里面没有啊?

Flink CDC中由以下原因引起:com.microsoft.sqlserver.jdbc.SQLServerException:目标数据库('hddb_mm')位于可用性组中,当应用程序意图设置为只读时,当前可用于连接。有关应用程序意图的详细信息,请参阅SQL Server联机丛书。客户端连接ID:bd754c66-671d-4725-b56a-83c68bef8552?sqlserver 目标数据库('hdb_mmm')位于可用性组中,并且当应用程序意图设置为只读时,当前可用于连接?flinkcdc链接配置有没有额外添加配置的地方啊,我看API里面没有啊?看了下官网好像没有啊

展开
收起
真的很搞笑 2023-11-15 08:38:12 92 分享 版权
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 Flink CDC 中进行配置时,请尝试以下几种解决方案:

    1. 检查 SQL Server 的只读选项设置。可以通过SQL Server Management Studio查看只读状态,然后将其设为可写入状态,以允许写入操作;
    2. 修改Hadoop的安全组配置,以允许Flink CDC访问数据库;
    3. 查看数据库所在机器的安全策略,并尝试修改防火墙规则,允许Flink CDC IP地址访问。
    2023-11-15 14:42:27
    赞同 1 展开评论
  • 根据您提供的错误信息,问题似乎与SQL Server的可用性组有关。在SQL Server中,可用性组是一种高可用性解决方案,允许多个数据库共享一个或多个副本。在这种情况下,由于应用程序意图设置为只读,因此无法连接到该数据库。

    对于Flink CDC,您需要确保您的JDBC URL和连接池配置正确。以下是一些建议:

    1. JDBC URL:请检查您的JDBC URL是否指向正确的数据库实例。如果您的数据库位于可用性组中,则URL可能类似于jdbc:sqlserver://<AGListenerName>;database=<DatabaseName>。确保<AGListenerName>指向可用性组的监听器名称。

    2. 连接池配置:请检查您的连接池配置,以确保它支持可用的连接。例如,如果您使用的是HikariCP,请确保maximumPoolSize大于或等于可用连接数。

    3. 应用程序意图:请检查您的应用程序代码,确保应用程序意图设置为只读。这可以通过将applicationIntent参数设置为readonly来实现。

    4. Flink CDC配置:Flink CDC的配置选项相对较少。然而,您可以尝试通过自定义StreamExecutionEnvironment来调整连接超时和重试策略。例如:

    env.setMaxParallelism(10);
    DataStreamSource<Row> source = env.readUsingOutputFormat(new JdbcInputFormat<>(
        "jdbc:sqlserver://<AGListenerName>;database=<DatabaseName>",
        "<DriverClass>",
        "<Username>",
        "<Password>",
        "<Query>",
        new RowTypeInfo(Types.of(Object.class))));
    source.name("CDC Source");
    
    2023-11-15 09:00:00
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理