首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka .NET连接池超时问题

Akka .NET连接池超时问题
EN

Stack Overflow用户
提问于 2017-04-20 13:39:25
回答 1查看 420关注 0票数 7

我们正在使用Akka.NET创建一个新的系统,并且有一个基本的集群设置,包括切分和持久化。

我们已经使用了正式的文档和一些Petabridge文章来使切分工作正常。但是,我们遇到了一个问题,即碎片超出了Server连接池允许的最大连接数。因此,我们得到了以下信息..。

2017-04-20 14:04:31.433 +01:00警告“超时过期。超时时间在从池获得连接之前过去了。这可能是因为所有池连接都在使用,并且达到了最大池大小。”

我们认为,当碎片更新分片日志时,就会发生这种情况。

为什么切分模块不能正确地管理它的SQL连接?这里有配置问题吗?

当这种错误发生时,是否有可能让它重试?就目前情况而言,我们将丢失此错误的每个实例的消息。

这是相关的HOCON

代码语言:javascript
复制
cluster.sharding {
    journal-plugin-id = "akka.persistence.journal.sharding"
    snapshot-plugin-id = "akka.persistence.snapshot-store.sharding"
}
persistence {
    journal {
        plugin = "akka.persistence.journal.sql-server"
        sql-server {
            class = "Akka.Persistence.SqlServer.Journal.SqlServerJournal, Akka.Persistence.SqlServer"
            connection-string = "Server=.;Database=akkasystem;Integrated Security=true"
            schema-name = dbo
            auto-initialize = on
        }
        # a separate config used by cluster sharding only 
        sharding {
            connection-string = "Server=.;Database=akkasystem;Integrated Security=true"
            auto-initialize = on
            plugin-dispatcher = "akka.actor.default-dispatcher"
            class = "Akka.Persistence.SqlServer.Journal.SqlServerJournal, Akka.Persistence.SqlServer"
            connection-timeout = 30s
            schema-name = dbo
            table-name = ShardingJournal
            timestamp-provider = "Akka.Persistence.Sql.Common.Journal.DefaultTimestampProvider, Akka.Persistence.Sql.Common"
            metadata-table-name = ShardingMetadata
        }
    }
    snapshot-store {
        sharding {
            class = "Akka.Persistence.SqlServer.Snapshot.SqlServerSnapshotStore, Akka.Persistence.SqlServer"
            plugin-dispatcher = "akka.actor.default-dispatcher"
            connection-string = "Server=.;Database=akkasystem;Integrated Security=true"
            connection-timeout = 30s
            schema-name = dbo
            table-name = ShardingSnapshotStore
            auto-initialize = on
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-04-21 07:46:25

这可能是一个迹象,表明SQL日志被大量传入的事件淹没,从而触发连接超时,而事件正在等待池中的下一个连接被释放。

从您的配置中,我怀疑,如果您已经开始持久化一个事件并创建高比率的碎片/实体,那么这种情况可能会发生。在不久的将来,现有的SQL日志将获得显著的速度提升(请参阅分批期刊)。希望这能帮助解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43521235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档