我无法使用spring-webflux和r2dbc(使用r2dbc-pool驱动程序)打开10个以上的连接。我的配置看起来像:
@Configuration public class PostgresConfig extends AbstractR2dbcConfiguration {
@Override @Bean public ConnectionFactory connectionFactory() { ConnectionFactory connectionFactory = ConnectionFactories.get(ConnectionFactoryOptions.builder() .option(DRIVER, "pool") .option(PROTOCOL, "postgresql") .option(HOST, host) .option(USER, user) .option(PASSWORD, password) .option(DATABASE, database) .build()); ConnectionPoolConfiguration configuration = ConnectionPoolConfiguration.builder(connectionFactory) .maxIdleTime(Duration.ofMinutes(30)) .initialSize(initialSize) .maxSize(maxSize) .maxCreateConnectionTime(Duration.ofSeconds(1)) .build(); return new ConnectionPool(configuration); } } 当我指定超过10个连接时,我得到的错误如下:
org.springframework.dao.DataAccessResourceFailureException: Failed to obtain R2DBC Connection; nested exception is java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'lift' (and no fallback has been configured) at org.springframework.data.r2dbc.connectionfactory.ConnectionFactoryUtils .lambda$getConnection$0(ConnectionFactoryUtils.java:71) 此外,连接数保持与初始大小相同。不会创建新连接。
最近开始用R2dbc,一开始我就将初始数和最大活跃数设成不同,然后看了R2dbcProperties.Pool的默认值,初始数和最大活跃数相等,想想就觉得会有问题。 Spring data r2dbc还有个坑,Criteria.from(List criteria),使用这种方式创建的条件查询会抛异常,然后是自行实现一个方法使用。
GTM的备节点,在pgxc,pgxl中,GTM控制所有的全局事务分配,如果出现问题,就会导致整个集群不可用,为了增加可用性,增加该备用节点。当GTM出现问题时,GTM Standby可以升级为GTM,保证集群正常工作。
“答案来源于网络,供您参考” 希望以上信息可以帮到您!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。