我们正在使用Akka.NET创建一个新系统,并具有基于分片和持久性的基本集群设置.
我们使用官方文档以及一些Petabridge博客文章来使分片正常工作.但是,我们遇到了一个问题,即分片超过了SQL Server连接池允许的最大连接数.因此,我们收到以下消息......
2017-04-20 14:04:31.433 +01:00 [警告]"超时已到期.从池中获取连接之前已经过了超时时间.这可能是因为所有池连接都在使用中,并且最大池大小是到达."
我们相信当分片更新分片日志时会发生这种情况.
为什么分片模块不能正确管理其SQL连接?这里有配置问题吗?
发生此类错误时是否可以重试?就目前而言,我们会丢失此错误的每个实例的消息.
这是相关的HOCON
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 = …Run Code Online (Sandbox Code Playgroud) 我在配置CRDT桶类型和使用bitcask后端时遇到问题.我希望能够使用set类型并保持bitcask的到期功能.
如果我没有指定后端,我可以创建和使用桶类型
sudo riak-admin bucket-type create sets '{"props":{"datatype":"set"}}'
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在道具中指定后端,每当我尝试使用该类型时,riak似乎崩溃了,我失去了联系.
sudo riak-admin bucket-type create sets2 '{"props":{"datatype":"set","backend":"bitcask"}}'
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用存储桶类型时error.log中的唯一日志.如果它有帮助我也尝试指定后端是leveldb和内存以及bitcask没有运气.
2016-10-13 13:41:25.965 [错误] <0.8870.0> gen_fsm <0.8870.0>状态有效终止,原因是:在riak_core_vnode中没有匹配{riak_kv_multi_backend,undefined_backend,<<"bitcask">>}的case子句:vnode_command/3 line 346 2016-10-13 13:41:25.965 [error] <0.8870.0> CRASH REPORT进程<0.8870.0>退出1个邻居,原因是:没有case子句匹配{riak_kv_multi_backend,undefined_backend,<< riak_core_vnode中的"bitcask">>}:gen_fsm中的vnode_command/3行346:终止/ 7行622 2016-10-13 13:41:25.965 [错误] <0.168.0>主管riak_core_vnode_sup以{riak_core_vnode开头的子项未定义start_link,undefined} at <0.8870.0>退出,原因是没有case子句匹配riak_core_vnode中的{riak_kv_multi_backend,undefined_backend,<<"bitcask">>}:vnode_command/3 line 346 in context child_terminated 2016-10-13 13:41: 25.965 [错误] <0.8896.0> gen_fsm <0.8896.0>处于状态就绪已终止,原因是:没有case子句匹配{riak_kv_multi_backend,undefined_backend,<<"bitcask" >>} in riak_core_vnode:vnode_command/3 line 346 2016-10-13 13:41:25.965 [error] <0.8896.0> CRASH REPORT进程<0.8896.0>退出10个邻居,原因是:没有case子句匹配{riak_kv_multi_backend ,undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in gen_fsm:terminate/7 line 622 2016-10-13 13:41:25.966 [error] <0.8897.0> Supervisor {<0.8897. 0>,poolboy_sup}让孩子riak_core_vnode_worker以riak_core_vnode_worker:start_link([{worker_module,riak_core_vnode_worker},{worker_args,[1370157784997721485815954530671515330927436759040,...]},...])在未定义的出口处启动,原因是没有case子句匹配{riak_kv_multi_backend, undefined_backend,<<"bitcask">>}在riak_core_vnode中:vnode_command/3行346在上下文中shutdown_error 2016-10-13 13:41:25.966 …