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