From edd29ca82e68458c4e5da96c180c9ae5780642d6 Mon Sep 17 00:00:00 2001 From: lihang <lihang@vci-tech.com> Date: 星期二, 25 四月 2023 22:04:17 +0800 Subject: [PATCH] 转发ddl服务的转发器修正 --- Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java | 72 +++++++++++++++++++++--------------- 1 files changed, 42 insertions(+), 30 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java index 740d7bd..75cfee0 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java @@ -3,10 +3,12 @@ import com.alibaba.cloud.nacos.NacosDiscoveryProperties; import com.alibaba.cloud.nacos.NacosServiceManager; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.api.annotation.NacosInjected; import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.pojo.Instance; +import com.alibaba.nacos.common.http.client.NacosRestTemplate; import com.vci.ubcs.omd.vo.OmdBtmTypeVO; import org.apache.http.Header; import org.apache.http.client.methods.CloseableHttpResponse; @@ -19,11 +21,19 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.StringPool; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; /** * Description: 棰嗗煙杞彂鍣� @@ -31,8 +41,9 @@ * @author LiHang * @date 2023/4/25 */ -@Repository public class DomainRepeater { + private DomainRepeater() { + } /** * 鎺у埗鍣ㄨ矾寰� @@ -54,50 +65,51 @@ */ public static final String API_GET_ALL_TABLE_INFO = API_PREFIX + StringPool.SLASH +"getAllTableInfo"; - @NacosInjected - private NamingService nacosNamingService; + /** + * Nacos鏈嶅姟鍒楄〃 + */ + private static NamingService namingService = SINGLE.build(); - @Component - public static class SINGLE{ + private static class SINGLE { @Autowired - private NacosServiceManager nacosServiceManager; + private NacosServiceManager manager; + private static NacosServiceManager nacosServiceManager; @Autowired - private NacosDiscoveryProperties nacosDiscoveryProperties; - - private static NamingService nacosNamingService; + private NacosDiscoveryProperties properties; + private static NacosDiscoveryProperties nacosDiscoveryProperties; @PostConstruct - public NamingService build(){ - nacosNamingService = nacosServiceManager.getNamingService(nacosDiscoveryProperties.getNacosProperties()); - return nacosNamingService; + private void init(){ + nacosServiceManager = manager; + nacosDiscoveryProperties = properties; + } + private static NamingService build(){ + return nacosServiceManager.getNamingService(nacosDiscoveryProperties.getNacosProperties()); } } - private RestTemplate restTemplate = new RestTemplate(); - - public Object submitBtmType (String serviceName, OmdBtmTypeVO omdBtmTypeVO) throws NacosException { - - if (nacosNamingService == null){ - nacosNamingService = SINGLE.nacosNamingService; - } - Instance service = nacosNamingService.selectOneHealthyInstance(AppConstant.APPLICATION_GATEWAY_NAME); + public static R submitBtmType (String serviceName, OmdBtmTypeVO omdBtmTypeVO) throws NacosException { + Instance service = namingService.selectOneHealthyInstance(AppConstant.APPLICATION_GATEWAY_NAME); try { String url = "http://" + service.getIp() +StringPool.COLON+ service.getPort() + StringPool.SLASH + serviceName + StringPool.SLASH + API_SUBMIT_BTM_TYPE; - HttpPost httpPost = buildPost(url); - httpPost.setEntity(new StringEntity(JSON.toJSONString(omdBtmTypeVO),"utf-8")); - CloseableHttpClient httpClient = HttpClientBuilder.create().build(); - CloseableHttpResponse response = httpClient.execute(httpPost); - return response; + ResponseEntity<R> responseEntity = executePost(url, JSONObject.toJSONString(omdBtmTypeVO), null); + if (responseEntity.getStatusCode().equals(HttpStatus.OK)){ + return responseEntity.getBody(); + } + return R.fail(String.valueOf(responseEntity.getStatusCode().value())); } catch (Exception e) { throw new RuntimeException(e); } } - private HttpPost buildPost(String url){ - HttpPost httpPost = new HttpPost(url); - httpPost.setHeader("Content-Type","application/json;charset=UTF-8"); - httpPost.setHeader("Blade-Auth", AuthUtil.getHeader()); - return httpPost; + private static ResponseEntity<R> executePost(String url, String body,Map<String,String> extraHeaders) throws IOException { + RestTemplate restTemplate = new RestTemplate(); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Content-Type","application/json;charset=UTF-8"); + httpHeaders.add("Blade-Auth", AuthUtil.getHeader()); + Optional.ofNullable(extraHeaders).orElseGet(HashMap::new).forEach(httpHeaders::add); + HttpEntity<String> request = new HttpEntity<>(body,httpHeaders); + return restTemplate.postForEntity(url, request, R.class); } } -- Gitblit v1.9.3