public void backup() {
		logger.debug("enter backup method");
		configService.initBackupConfig();
		List<String> backupIndices = configService.getBackupIndices();
		if(backupIndices == null || backupIndices.size()==0){
			//备份该集群下面所有索引
			backupIndices = getAllIndexesFromEs();
		}
		if(backupIndices!=null && backupIndices.size()>0){
			if(configService.disableMultiThread()){
				for(String indexName : backupIndices){
					backupByIndexName(indexName);
				}
			}
			else {
				//采用队列多线程模式
				int cpuCoreNumber = Runtime.getRuntime().availableProcessors();  
				logger.debug("cpu core(threadpool number):{}",cpuCoreNumber);
		        exec = Executors.newFixedThreadPool(cpuCoreNumber);  
		        int indexCount=0;
		        for(String indexName : backupIndices){
		        	final String iName = indexName;
		        	exec.submit(new Callable<Object>(){
						public Object call() throws Exception {
							backupByIndexName(iName);
							return null;
						}
		        	});
		        	indexCount++;
				}
		        logger.info("{} index will be backup",indexCount);
				try {
					exec.shutdown();
					exec.awaitTermination(1, TimeUnit.DAYS);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
		configService.getBackupClient().close();
		logger.debug("exit backup method");
	}