Flink CDC中由以下原因引起:com.microsoft.sqlserver.jdbc.SQLServerException:目标数据库('hddb_mm')位于可用性组中,当应用程序意图设置为只读时,当前可用于连接。有关应用程序意图的详细信息,请参阅SQL Server联机丛书。客户端连接ID:bd754c66-671d-4725-b56a-83c68bef8552?sqlserver 目标数据库('hdb_mmm')位于可用性组中,并且当应用程序意图设置为只读时,当前可用于连接?flinkcdc链接配置有没有额外添加配置的地方啊,我看API里面没有啊?看了下官网好像没有啊
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 Flink CDC 中进行配置时,请尝试以下几种解决方案:
根据您提供的错误信息,问题似乎与SQL Server的可用性组有关。在SQL Server中,可用性组是一种高可用性解决方案,允许多个数据库共享一个或多个副本。在这种情况下,由于应用程序意图设置为只读,因此无法连接到该数据库。
对于Flink CDC,您需要确保您的JDBC URL和连接池配置正确。以下是一些建议:
JDBC URL:请检查您的JDBC URL是否指向正确的数据库实例。如果您的数据库位于可用性组中,则URL可能类似于jdbc:sqlserver://<AGListenerName>;database=<DatabaseName>。确保<AGListenerName>指向可用性组的监听器名称。
连接池配置:请检查您的连接池配置,以确保它支持可用的连接。例如,如果您使用的是HikariCP,请确保maximumPoolSize大于或等于可用连接数。
应用程序意图:请检查您的应用程序代码,确保应用程序意图设置为只读。这可以通过将applicationIntent参数设置为readonly来实现。
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");
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。