MCRouter笔记(三) 路由句柄
来自:https://github.com/facebook/mcrouter/wiki/List-of-Route-Handles
AllAsyncRoute
立即发送请求到所有子路由句柄,不等待子路由句柄返回,直接返回NullRoute给请求方。
属性:
children
: 子路由句柄。
AllFastestRoute
立即发送请求到所有子路由句柄,把第一个无错误的响应返回给请求,其它的返回默认忽略。
属性:
children
: 子路由句柄。
AllInitialRoute
立即发送请求到所有子路由句柄,等待子路由句柄列表中第一个句柄的返回,并把这个给请求方,其它的返回默认忽略。
属性:
children
: 子路由句柄。
AllMajorityRoute
Immediately sends the same request to all child route handles. Waits for replies until a non-error result appears (half + 1) times (or all replies if that never happens), and then returns the latest reply that it sees (the effect is that typically the reply with the most common result is returned).
children
: 子路由句柄。
AllSyncRoute
立即发送请求到所有子路由句柄,返回所有回复中最差的。
属性:
children
: 子路由句柄。
DevNullRoute
Same as NullRoute, but with mcrouter stats reporting. See Stats list.
ErrorRoute
Immediately returns the error reply for each request. You can specify the error value to return: "ErrorRoute|MyErrorValueHere"
FailoverRoute
首先发送请求到子路由句柄列表中的第一个路由句柄,如果没有返回错误就立即返回请求,否则继续发到列表中的下一个路由句柄。如果所有都返回错误则返回最后一个错误的回复。注意:没命中不算错误。
children
: 子路由句柄。- failover_errors:对象或数组,可选项,默认所有错误。
failover_errors可指定错误类型,如:
{ "gets": [ "connect_timeout", "timeout", "connect_error", "tko" ], "updates": [], // empty array: will not failover. // "deletes" is missing, default behavior (all errors) will be assumed. }
[ "connect_timeout", "timeout", "connect_error", "tko" ]
FailoverWithExptimeRoute
HashRoute
根据哈希路由。
children
: 子路由句柄。- salt:key的前缀。
hash_func:哈希函数Ch3,
Crc32
orWeightedCh3,默认为Ch3。
- weights:hash_func为WeightedCh3时有效。
HostIdRoute
根据客户端ID路由。
children
: 子路由句柄。
LatestRoute
随机连接,如果返回错误再次随机,最大随机次数为failover_count。
children
: 子路由句柄。- failover_count:默认5次
- failover_errors:错误类型。