默认情况下,一个调用请求的重试次数与节点个数相同。然而,重试仍然遵守请求超时的规定。这意味着,如果有一个100个节点的集群,并且请求超时时间为20秒,那么将尽可能多地重试,但在20秒(超时时间)后就会放弃此请求。
var audit = new Auditor(() => VirtualClusterWith
.Nodes(10)
.ClientCalls(r => r.FailAlways())
.ClientCalls(r => r.OnPort(9209).SucceedAlways())
.StaticConnectionPool()
.Settings(s => s.DisablePing())
);
audit = await audit.TraceCall(
new ClientCall(r => r.MaxRetries(2)) {
{ BadResponse, 9200 },
{ BadResponse, 9201 },
{ BadResponse, 9202 },
{ MaxRetriesReached }
}
);
当有100个节点的集群时,可能希望确保固定的重试次数。请记住,实际的请求数是:初始尝试次数+设置的重试次数。
var audit = new Auditor(() => VirtualClusterWith
.Nodes(10)
.ClientCalls(r => r.FailAlways())
.ClientCalls(r => r.OnPort(9209).SucceedAlways())
.StaticConnectionPool()
.Settings(s => s.DisablePing().MaximumRetries(5))
);
audit = await audit.TraceCall(
new ClientCall(r => r.MaxRetries(2)) {
{ BadResponse, 9200 },
{ BadResponse, 9201 },
{ BadResponse, 9202 },
{ MaxRetriesReached }
}
);
发表评论
登录用户才能发表评论, 请 登 录 或者 注册