1.设置的目的
由于作为在线服务,需要能够保证在快速失败、失败容错重试等特性。快速失败能保证系统的低延时,能防止因为等待某个资源,造成服务资源暂用,最后导致服务不可用。失败容错能够提供服务的稳定性,进行服务失败是重试。因此HBase客户端提供的重试机制,并通过配置合理的参数使得客户端在保证一定容错性的同时还能够保证系统的低延迟特性。
2.hbase客户端重要参数
hbase.client.pause
失败重试时等待时间,随着重试次数越多,重试等待时间越长,计算方式如下所示:public static int RETRY_BACKOFF[] = { 1, 2, 3, 5, 10, 20, 40, 100, 100, 100, 100, 200, 200 }; long normalPause = pause * HConstants.RETRY_BACKOFF[ntries]; long jitter = (long)(normalPause * RANDOM.nextFloat() * 0.01f);
所以如果重试10次,hbase.client.pause=50ms,则每次重试等待时间为{50,100,150,250,500,1000,2000,5000,5000,5000}。
属性默认值为100ms,可以设置为50ms,甚至更小。hbase.client.retries.number
失败时重试次数,默认为