@Override
  public void initThriftServiceThread() throws IllegalAccessException {

    try {
      thriftServiceThread =
          new ThriftServiceThread(
              processor,
              getID().getName(),
              ThreadName.CONFIGNODE_RPC_PROCESSOR.getName(),
              getBindIP(),
              getBindPort(),
              configConf.getCnRpcMaxConcurrentClientNum(),
              configConf.getThriftServerAwaitTimeForStopService(),
              new ConfigNodeRPCServiceHandler(),
              commonConfig.isRpcThriftCompressionEnabled(),
              DeepCopyRpcTransportFactory.INSTANCE);
    } catch (RPCServiceException e) {
      throw new IllegalAccessException(e.getMessage());
    }
    thriftServiceThread.setName(ThreadName.CONFIGNODE_RPC_SERVICE.getName());
    MetricService.getInstance().addMetricSet(new ConfigNodeRPCServiceMetrics(thriftServiceThread));
  }
ConfigNodeRPCServer exposes the interface that interacts with the DataNode
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCService.java