private Result wrapBreakerInvoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
   // 首先检查是否需要进入服务降级流程
   if (checkNeedCircuitBreak(invoker, invocation)) {
     logger.info(
         "[{}] activate the circuit break for url [{}],invoke method [{}]",
         localHost,
         invoker.getUrl(),
         invocation.getMethodName());
     // 进入服务降级
     return doCircuitBreak(invoker, invocation);
   }
   try {
     Result result = invoker.invoke(invocation);
     // 将该服务从服务降级中恢复出来
     toBeNormal(invoker, invocation);
     return result;
   } catch (RpcException e) {
     // 如果是请求超时或者网络异常,进行异常统计
     if (!e.isBiz()) {
       caughtException(invoker, invocation, e);
     }
     throw e;
   }
 }