Kaynağa Gözat

去除EsClientUtil

Airhead 6 yıl önce
ebeveyn
işleme
14c3ef136d

+ 10 - 2
readme.MD

@ -11,11 +11,19 @@
    
    
## 相关资料
powerdesign:https://192.168.1.103:888/svn/outwindow/基础开发部/doc/i健康2.0
power design: https://192.168.1.103:888/svn/outwindow/基础开发部/doc/i健康2.0
表结构有更新,建议直接用PNG图片放在工程目录下,对于理解已够用。
![]()
## 规范相关
- 代码中不要出现Application之外的main函数。这些main函数通常被用来做测试代码的入口。如果需要写测试代码就用Test的方式创建测试样例。
## 改造点说明
- dao, model下的jpa目录去除,我们只使用jpa的方式
- util目录做了部分统一,未完全整理
- service和controller目录下新增special目录,表示特例(special case),将一些特殊的查询,如单病种等,
- scheduler清理任务及新增special目录
- scheduler清理任务及新增special目录
- 合并ElasticsearchUtil和EsClientUtil。
增加util类很多时候就是为了去除面向对象的复制性,将类对象函数化,然调用过程更加方便。
如果在封装Util时有多个Util,实际上是增加了复杂度?为什么不用原生类呢?

+ 1 - 2
src/main/java/com/yihu/quota/controller/ElasticSearchController.java

@ -8,7 +8,6 @@ import com.yihu.ehr.elasticsearch.config.ElasticSearchConfig;
import com.yihu.ehr.query.services.SolrQuery;
import com.yihu.ehr.util.rest.Envelop;
import com.yihu.quota.util.ElasticsearchUtil;
import com.yihu.quota.util.EsClientUtil;
import com.yihu.quota.vo.PersonalInfoModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -46,7 +45,7 @@ public class ElasticSearchController extends BaseController {
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private EsClientUtil esClientUtil;
    private ElasticsearchUtil esClientUtil;
    @Autowired
    private ElasticsearchUtil elasticsearchUtil;
    @Autowired

+ 1 - 2
src/main/java/com/yihu/quota/etl/extract/ExtractPercentHelper.java

@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.quota.etl.extract.es.EsExtract;
import com.yihu.quota.etl.model.EsConfig;
import com.yihu.quota.util.ElasticsearchUtil;
import com.yihu.quota.util.EsClientUtil;
import com.yihu.quota.model.TjQuota;
import com.yihu.quota.model.dimension.TjQuotaDimensionMain;
import com.yihu.quota.model.dimension.TjQuotaDimensionSlave;
@ -34,7 +33,7 @@ import java.util.*;
@Scope("prototype")
public class ExtractPercentHelper {
    @Autowired
    EsClientUtil esClientUtil;
    ElasticsearchUtil esClientUtil;
    @Autowired
    ObjectMapper objectMapper;
    @Autowired

+ 1 - 2
src/main/java/com/yihu/quota/etl/extract/es/EsExtract.java

@ -6,7 +6,6 @@ import com.yihu.quota.etl.Contant;
import com.yihu.quota.etl.extract.ExtractUtil;
import com.yihu.quota.etl.model.EsConfig;
import com.yihu.quota.util.ElasticsearchUtil;
import com.yihu.quota.util.EsClientUtil;
import com.yihu.quota.model.dimension.TjQuotaDimensionMain;
import com.yihu.quota.model.dimension.TjQuotaDimensionSlave;
import com.yihu.quota.service.special.org.OrgHealthCategoryStatisticsService;
@ -34,7 +33,7 @@ public class EsExtract {
    private static String orgHealthCategory = "orgHealthCategory";
    private Logger logger = LoggerFactory.getLogger(EsExtract.class);
    @Autowired
    private EsClientUtil esClientUtil;
    private ElasticsearchUtil esClientUtil;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired

+ 5 - 5
src/main/java/com/yihu/quota/etl/save/LargeDataWithRunnable.java

@ -1,7 +1,7 @@
package com.yihu.quota.etl.save;
import com.yihu.quota.etl.model.EsConfig;
import com.yihu.quota.util.EsClientUtil;
import com.yihu.quota.util.ElasticsearchUtil;
import com.yihu.quota.vo.SaveModel;
import io.searchbox.client.JestClient;
import io.searchbox.core.Bulk;
@ -20,7 +20,7 @@ import java.util.List;
public class LargeDataWithRunnable implements Runnable {
    private Logger logger = LoggerFactory.getLogger(LargeDataWithRunnable.class);
    private EsClientUtil esClientUtil;
    private ElasticsearchUtil esClientUtil;
    private String jsonConfig;
    private List<SaveModel> list;//待处理数据
    private int threadCount = 0;//初始化线程数
@ -29,7 +29,7 @@ public class LargeDataWithRunnable implements Runnable {
    private int totalCount = 0;//待处理数据总数量
    private int havedCount = 0;//已经处理的数据量
    public LargeDataWithRunnable(List<SaveModel> saveModels, String jsonConfig, EsClientUtil esClientUtil) {
    public LargeDataWithRunnable(List<SaveModel> saveModels, String jsonConfig, ElasticsearchUtil esClientUtil) {
        this.list = saveModels;
        int count = saveModels.size() / perCount;
        int remainder = saveModels.size() % perCount;
@ -138,11 +138,11 @@ public class LargeDataWithRunnable implements Runnable {
        this.jsonConfig = jsonConfig;
    }
    public EsClientUtil getEsClientUtil() {
    public ElasticsearchUtil getEsClientUtil() {
        return esClientUtil;
    }
    public void setEsClientUtil(EsClientUtil esClientUtil) {
    public void setEsClientUtil(ElasticsearchUtil esClientUtil) {
        this.esClientUtil = esClientUtil;
    }
}

+ 2 - 2
src/main/java/com/yihu/quota/etl/save/es/ElastricSearchSave.java

@ -3,7 +3,7 @@ package com.yihu.quota.etl.save.es;
import com.yihu.quota.etl.Contant;
import com.yihu.quota.etl.model.EsConfig;
import com.yihu.quota.etl.save.LargeDataWithRunnable;
import com.yihu.quota.util.EsClientUtil;
import com.yihu.quota.util.ElasticsearchUtil;
import com.yihu.quota.vo.SaveModel;
import io.searchbox.client.JestClient;
import io.searchbox.core.Bulk;
@ -30,7 +30,7 @@ public class ElastricSearchSave {
    private Logger logger = LoggerFactory.getLogger(ElastricSearchSave.class);
    @Autowired
    private EsClientUtil esClientUtil;
    private ElasticsearchUtil esClientUtil;
    private EsConfig esConfig;

+ 1 - 2
src/main/java/com/yihu/quota/job/EsQuotaPercentJob.java

@ -8,7 +8,6 @@ import com.yihu.quota.etl.model.EsConfig;
import com.yihu.quota.etl.save.SaveHelper;
import com.yihu.quota.model.TjQuotaLog;
import com.yihu.quota.util.ElasticsearchUtil;
import com.yihu.quota.util.EsClientUtil;
import com.yihu.quota.util.SpringUtil;
import com.yihu.quota.vo.QuotaVo;
import com.yihu.quota.vo.SaveModel;
@ -54,7 +53,7 @@ public class EsQuotaPercentJob implements Job {
    @Autowired
    private TjQuotaLogDao tjQuotaLogDao;
    @Autowired
    private EsClientUtil esClientUtil;
    private ElasticsearchUtil esClientUtil;
    @Autowired
    private ExtractHelper extractHelper;

+ 2 - 1
src/main/java/com/yihu/quota/util/BasesicUtil.java

@ -6,7 +6,8 @@ import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Created by janseny on 2017/12/14.
 * @author janseny
 * @date 2017/12/14
 */
public class BasesicUtil {

+ 41 - 1
src/main/java/com/yihu/quota/util/ElasticsearchUtil.java

@ -8,6 +8,9 @@ import com.alibaba.druid.sql.parser.Token;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.elasticsearch.ElasticSearchPool;
import io.searchbox.client.JestClient;
import io.searchbox.client.JestClientFactory;
import io.searchbox.client.config.HttpClientConfig;
import org.apache.commons.lang.StringUtils;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
@ -17,6 +20,8 @@ import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
@ -39,10 +44,13 @@ import org.nlpcn.es4sql.query.SqlElasticSearchRequestBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.net.InetAddress;
import java.util.*;
/**
 * Created by janseny on 2017/7/21.
 *
 * @author janseny
 * @date 2017/7/21
 */
@Component
public class ElasticsearchUtil {
@ -52,6 +60,38 @@ public class ElasticsearchUtil {
    @Autowired
    private ElasticSearchPool elasticSearchPool;
    /**
     * @param host "localhost"
     * @param port 9200
     * @return
     */
    public JestClient getJestClient(String host, Integer port) {
        String hostAddress = "http://" + host + ":" + port;
        JestClientFactory factory = new JestClientFactory();
        factory.setHttpClientConfig(new HttpClientConfig
                .Builder(hostAddress)
                .multiThreaded(true)
                //.discoveryEnabled(true)
                .readTimeout(60000)//30秒 -60s
                .build());
        return factory.getObject();
    }
    public Client getClient(String host, Integer port, String clusterName) {
        try {
            Settings settings = Settings.settingsBuilder()
                    .put("cluster.name", org.springframework.util.StringUtils.isEmpty(clusterName) ? "elasticsearch" : clusterName)
                    .put("client.transport.sniff", false)
                    .build();
            Client client = TransportClient.builder().settings(settings).build()
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
            return client;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * @param boolQueryBuilder 查询参数 build

+ 0 - 58
src/main/java/com/yihu/quota/util/EsClientUtil.java

@ -1,58 +0,0 @@
package com.yihu.quota.util;
import com.yihu.quota.etl.extract.es.EsExtract;
import io.searchbox.client.JestClient;
import io.searchbox.client.JestClientFactory;
import io.searchbox.client.config.HttpClientConfig;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.net.InetAddress;
/**
 * Created by janseny on 2017/8/1
 */
@Component
public class EsClientUtil {
    private Logger logger = LoggerFactory.getLogger(EsExtract.class);
    /**
     * @param host "localhost"
     * @param port 9200
     * @return
     */
    public JestClient getJestClient(String host, Integer port) {
        String hostAddress = "http://" + host + ":" + port;
        JestClientFactory factory = new JestClientFactory();
        factory.setHttpClientConfig(new HttpClientConfig
                .Builder(hostAddress)
                .multiThreaded(true)
                //.discoveryEnabled(true)
                .readTimeout(60000)//30秒 -60s
                .build());
        return factory.getObject();
    }
    public Client getClient(String host, Integer port, String clusterName) {
        try {
            Settings settings = Settings.settingsBuilder()
                    .put("cluster.name", StringUtils.isEmpty(clusterName) ? "elasticsearch" : clusterName)
                    .put("client.transport.sniff", false)
                    .build();
            Client client = TransportClient.builder().settings(settings).build()
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
            return client;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}