目录
如何处理Master切换时的id分发问题,保证在Master切换时的可用性?
如何保证获取到的id单调递增?
约束条件:
1)集群中一台机器为Master,仅Master提供id生成服务
2)当获取id的请求路由到Master机器时,直接返回响应(一轮RPC)
当获取id的请求路由到非Master机器时,转发至Master机器(两轮RPC)
方案评估
评估 |
|
---|---|
性能 |
1)请求最终由Master机器进行响应。单机能支持的最大QPS即为集群最大QPS。 2)请求路由到非Master机器时,需两轮RPC,会增加耗时。 3)请求最终由Master机器进行响应,导致同机房优先路由策略不适用,某些情况下,请求耗时较长。 |
扩展性 |
集群总QPS无法随集群机器数量的增加而线性扩展。 |
可用性 |
1)当发生Master切换时,会损失一定可用性 2)某些情况下,请求耗时较长,会导致可用性降低。 |
评估详情
性能
(1)当获取id的请求最终由Master进行响应。单机能支持的最大QPS即为集群最大QPS。
(2)由于仅Master能够提供id生成服务,同机房优先等路由规则不再适用
情况1:当获取id的请求路由到Master
当获取id的请求路由到Master,直接返回响应,一轮RPC
case1:
client和Master同城市,比如都在Beijing
client(Beijing)----->server(Master,Beijing)
case2:
client和Master不同城市,比如一个Beijing,一个Shanghai
client(Beijing)--(25ms+)--->server(Master,Shanghai)