code: public static void search() {
          Objects.requireNonNull(RPC_CLIENT_INITIALIZER);
          log.info("Searching for more TM...");
          try {
              HashSet<String> cluster = RELIABLE_MESSENGER.queryTMCluster();
              if (cluster.isEmpty()) {
                  log.info("No more TM.");
                  echoTMClusterSuccessful();
                  return;
              }
              clusterCountLatch = new CountDownLatch(cluster.size() - knownTMClusterSize);
              log.debug("wait connect size is {}", cluster.size() - knownTMClusterSize);
              RPC_CLIENT_INITIALIZER.init(TxManagerHost.parserList(new ArrayList<>(cluster)), true);
              clusterCountLatch.await(10, TimeUnit.SECONDS);
              echoTMClusterSuccessful();
          } catch (RpcException | InterruptedException e) {
              throw new IllegalStateException("There is no normal TM.");
          }
      }
docs: 重新搜寻TM