Commit 59a28663 by Nepxion

增加异步推送模式

parent e46c19f3
...@@ -70,21 +70,17 @@ public class ServiceController { ...@@ -70,21 +70,17 @@ public class ServiceController {
}); });
} }
public static List<ResultEntity> versionUpdate(String serviceId, String version) { public static String remoteConfigUpdate(String group, String serviceId, String config) {
String url = getUrl() + "console/version/update/" + serviceId; String url = getUrl() + "console/remote-config/update/" + group + "/" + serviceId;
String result = restTemplate.postForEntity(url, version, String.class).getBody();
return convert(result, new TypeReference<List<ResultEntity>>() {
});
}
public static String versionUpdate(Instance instance, String version) { // 解决中文乱码
String url = getUrl(instance) + "version/update"; HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
HttpEntity<String> entity = new HttpEntity<String>(config, headers);
String result = restTemplate.postForEntity(url, version, String.class).getBody(); String result = restTemplate.postForEntity(url, entity, String.class).getBody();
if (!StringUtils.equals(result, "OK")) { if (!StringUtils.equals(result, "OK") && !StringUtils.equals(result, "NO")) {
ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler(); ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler();
result = errorHandler.getCause(); result = errorHandler.getCause();
} }
...@@ -92,21 +88,12 @@ public class ServiceController { ...@@ -92,21 +88,12 @@ public class ServiceController {
return result; return result;
} }
public static List<ResultEntity> versionClear(String serviceId) { public static String remoteConfigClear(String group, String serviceId) {
String url = getUrl() + "console/version/clear/" + serviceId; String url = getUrl() + "console/remote-config/clear/" + group + "/" + serviceId;
String result = restTemplate.postForEntity(url, null, String.class).getBody();
return convert(result, new TypeReference<List<ResultEntity>>() {
});
}
public static String versionClear(Instance instance) {
String url = getUrl(instance) + "version/clear";
String result = restTemplate.postForEntity(url, null, String.class).getBody(); String result = restTemplate.postForEntity(url, null, String.class).getBody();
if (!StringUtils.equals(result, "OK")) { if (!StringUtils.equals(result, "OK") && !StringUtils.equals(result, "NO")) {
ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler(); ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler();
result = errorHandler.getCause(); result = errorHandler.getCause();
} }
...@@ -114,26 +101,16 @@ public class ServiceController { ...@@ -114,26 +101,16 @@ public class ServiceController {
return result; return result;
} }
public static String remoteConfigUpdate(String group, String serviceId, String config) { public static String remoteConfigView(String group, String serviceId) {
String url = getUrl() + "console/remote-config/update/" + group + "/" + serviceId; String url = getUrl() + "console/remote-config/view/" + group + "/" + serviceId;
// 解决中文乱码
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
HttpEntity<String> entity = new HttpEntity<String>(config, headers);
String result = restTemplate.postForEntity(url, entity, String.class).getBody();
if (!StringUtils.equals(result, "OK") && !StringUtils.equals(result, "NO")) { String result = restTemplate.getForEntity(url, String.class).getBody();
ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler();
result = errorHandler.getCause();
}
return result; return result;
} }
public static List<ResultEntity> configUpdate(String serviceId, String config) { public static List<ResultEntity> configUpdate(String serviceId, String config, boolean async) {
String url = getUrl() + "console/config/update-sync/" + serviceId; String url = getUrl() + "console/config/update-" + getInvokeType(async) + "/" + serviceId;
// 解决中文乱码 // 解决中文乱码
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
...@@ -146,8 +123,8 @@ public class ServiceController { ...@@ -146,8 +123,8 @@ public class ServiceController {
}); });
} }
public static String configUpdate(Instance instance, String config) { public static String configUpdate(Instance instance, String config, boolean async) {
String url = getUrl(instance) + "config/update-sync"; String url = getUrl(instance) + "config/update-" + getInvokeType(async);
// 解决中文乱码 // 解决中文乱码
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
...@@ -164,12 +141,21 @@ public class ServiceController { ...@@ -164,12 +141,21 @@ public class ServiceController {
return result; return result;
} }
public static String remoteConfigClear(String group, String serviceId) { public static List<ResultEntity> configClear(String serviceId, boolean async) {
String url = getUrl() + "console/remote-config/clear/" + group + "/" + serviceId; String url = getUrl() + "console/config/clear-" + getInvokeType(async) + "/" + serviceId;
String result = restTemplate.postForEntity(url, null, String.class).getBody(); String result = restTemplate.postForEntity(url, null, String.class).getBody();
if (!StringUtils.equals(result, "OK") && !StringUtils.equals(result, "NO")) { return convert(result, new TypeReference<List<ResultEntity>>() {
});
}
public static String configClear(Instance instance, boolean async) {
String url = getUrl(instance) + "config/clear-" + getInvokeType(async);
String result = restTemplate.postForEntity(url, null, String.class).getBody();
if (!StringUtils.equals(result, "OK")) {
ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler(); ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler();
result = errorHandler.getCause(); result = errorHandler.getCause();
} }
...@@ -177,19 +163,19 @@ public class ServiceController { ...@@ -177,19 +163,19 @@ public class ServiceController {
return result; return result;
} }
public static List<ResultEntity> configClear(String serviceId) { public static List<ResultEntity> versionUpdate(String serviceId, String version, boolean async) {
String url = getUrl() + "console/config/clear/" + serviceId; String url = getUrl() + "console/version/update-" + getInvokeType(async) + "/" + serviceId;
String result = restTemplate.postForEntity(url, null, String.class).getBody(); String result = restTemplate.postForEntity(url, version, String.class).getBody();
return convert(result, new TypeReference<List<ResultEntity>>() { return convert(result, new TypeReference<List<ResultEntity>>() {
}); });
} }
public static String configClear(Instance instance) { public static String versionUpdate(Instance instance, String version, boolean async) {
String url = getUrl(instance) + "config/clear"; String url = getUrl(instance) + "version/update-" + getInvokeType(async);
String result = restTemplate.postForEntity(url, null, String.class).getBody(); String result = restTemplate.postForEntity(url, version, String.class).getBody();
if (!StringUtils.equals(result, "OK")) { if (!StringUtils.equals(result, "OK")) {
ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler(); ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler();
...@@ -199,10 +185,24 @@ public class ServiceController { ...@@ -199,10 +185,24 @@ public class ServiceController {
return result; return result;
} }
public static String remoteConfigView(String group, String serviceId) { public static List<ResultEntity> versionClear(String serviceId, boolean async) {
String url = getUrl() + "console/remote-config/view/" + group + "/" + serviceId; String url = getUrl() + "console/version/clear-" + getInvokeType(async) + "/" + serviceId;
String result = restTemplate.getForEntity(url, String.class).getBody(); String result = restTemplate.postForEntity(url, null, String.class).getBody();
return convert(result, new TypeReference<List<ResultEntity>>() {
});
}
public static String versionClear(Instance instance, boolean async) {
String url = getUrl(instance) + "version/clear-" + getInvokeType(async);
String result = restTemplate.postForEntity(url, null, String.class).getBody();
if (!StringUtils.equals(result, "OK")) {
ServiceErrorHandler errorHandler = (ServiceErrorHandler) restTemplate.getErrorHandler();
result = errorHandler.getCause();
}
return result; return result;
} }
...@@ -222,6 +222,10 @@ public class ServiceController { ...@@ -222,6 +222,10 @@ public class ServiceController {
return url; return url;
} }
private static String getInvokeType(boolean async) {
return async ? "async" : "sync";
}
private static <T> T convert(String result, TypeReference<T> typeReference) { private static <T> T convert(String result, TypeReference<T> typeReference) {
try { try {
return JsonUtil.fromJson(result, typeReference); return JsonUtil.fromJson(result, typeReference);
......
...@@ -102,6 +102,8 @@ public class ServiceTopology extends AbstractTopology { ...@@ -102,6 +102,8 @@ public class ServiceTopology extends AbstractTopology {
private JBasicMenuItem executeGrayReleaseMenuItem; private JBasicMenuItem executeGrayReleaseMenuItem;
private JBasicMenuItem refreshGrayStateMenuItem; private JBasicMenuItem refreshGrayStateMenuItem;
private JBasicMenuItem executeGrayRouterMenuItem; private JBasicMenuItem executeGrayRouterMenuItem;
private JBasicRadioButtonMenuItem pushAsyncModeRadioButtonMenuItem;
private JBasicRadioButtonMenuItem pushSyncModeRadioButtonMenuItem;
private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem; private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem;
private JBasicRadioButtonMenuItem ruleToServiceRadioButtonMenuItem; private JBasicRadioButtonMenuItem ruleToServiceRadioButtonMenuItem;
private FilterPanel filterPanel; private FilterPanel filterPanel;
...@@ -151,16 +153,27 @@ public class ServiceTopology extends AbstractTopology { ...@@ -151,16 +153,27 @@ public class ServiceTopology extends AbstractTopology {
} }
private void initializeToolBar() { private void initializeToolBar() {
pushAsyncModeRadioButtonMenuItem = new JBasicRadioButtonMenuItem(ConsoleLocale.getString("push_async_mode"), ConsoleLocale.getString("push_async_mode"), true);
pushSyncModeRadioButtonMenuItem = new JBasicRadioButtonMenuItem(ConsoleLocale.getString("push_sync_mode"), ConsoleLocale.getString("push_sync_mode"));
ButtonGroup pushModeButtonGroup = new ButtonGroup();
pushModeButtonGroup.add(pushAsyncModeRadioButtonMenuItem);
pushModeButtonGroup.add(pushSyncModeRadioButtonMenuItem);
ruleToConfigCenterRadioButtonMenuItem = new JBasicRadioButtonMenuItem(ConsoleLocale.getString("rule_control_mode_to_config_center"), ConsoleLocale.getString("rule_control_mode_to_config_center"), true); ruleToConfigCenterRadioButtonMenuItem = new JBasicRadioButtonMenuItem(ConsoleLocale.getString("rule_control_mode_to_config_center"), ConsoleLocale.getString("rule_control_mode_to_config_center"), true);
ruleToServiceRadioButtonMenuItem = new JBasicRadioButtonMenuItem(ConsoleLocale.getString("rule_control_mode_to_service"), ConsoleLocale.getString("rule_control_mode_to_service")); ruleToServiceRadioButtonMenuItem = new JBasicRadioButtonMenuItem(ConsoleLocale.getString("rule_control_mode_to_service"), ConsoleLocale.getString("rule_control_mode_to_service"));
ButtonGroup buttonGroup = new ButtonGroup(); ButtonGroup ruleToButtonGroup = new ButtonGroup();
buttonGroup.add(ruleToConfigCenterRadioButtonMenuItem); ruleToButtonGroup.add(ruleToConfigCenterRadioButtonMenuItem);
buttonGroup.add(ruleToServiceRadioButtonMenuItem); ruleToButtonGroup.add(ruleToServiceRadioButtonMenuItem);
JBasicPopupMenu ruleControlPopupMenu = new JBasicPopupMenu();
ruleControlPopupMenu.add(ruleToConfigCenterRadioButtonMenuItem); JBasicPopupMenu pushControlPopupMenu = new JBasicPopupMenu();
ruleControlPopupMenu.add(ruleToServiceRadioButtonMenuItem); pushControlPopupMenu.add(pushAsyncModeRadioButtonMenuItem);
JClassicMenuButton ruleControllMenubutton = new JClassicMenuButton(ConsoleLocale.getString("rule_control_mode"), ConsoleIconFactory.getSwingIcon("component/advanced_16.png"), ConsoleLocale.getString("rule_control_mode")); pushControlPopupMenu.add(pushSyncModeRadioButtonMenuItem);
ruleControllMenubutton.setPopupMenu(ruleControlPopupMenu); pushControlPopupMenu.addSeparator();
pushControlPopupMenu.add(ruleToConfigCenterRadioButtonMenuItem);
pushControlPopupMenu.add(ruleToServiceRadioButtonMenuItem);
JClassicMenuButton pushControllMenubutton = new JClassicMenuButton(ConsoleLocale.getString("push_control_mode"), ConsoleIconFactory.getSwingIcon("component/advanced_16.png"), ConsoleLocale.getString("push_control_mode"));
pushControllMenubutton.setPopupMenu(pushControlPopupMenu);
JToolBar toolBar = getGraph().getToolbar(); JToolBar toolBar = getGraph().getToolbar();
toolBar.addSeparator(); toolBar.addSeparator();
...@@ -170,7 +183,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -170,7 +183,7 @@ public class ServiceTopology extends AbstractTopology {
toolBar.add(new JClassicButton(createExecuteGrayReleaseAction())); toolBar.add(new JClassicButton(createExecuteGrayReleaseAction()));
toolBar.add(new JClassicButton(createExecuteGrayRouterAction())); toolBar.add(new JClassicButton(createExecuteGrayRouterAction()));
toolBar.add(new JClassicButton(createRefreshGrayStateAction())); toolBar.add(new JClassicButton(createRefreshGrayStateAction()));
toolBar.add(ruleControllMenubutton); toolBar.add(pushControllMenubutton);
toolBar.addSeparator(); toolBar.addSeparator();
toolBar.add(createConfigButton(true)); toolBar.add(createConfigButton(true));
...@@ -947,7 +960,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -947,7 +960,7 @@ public class ServiceTopology extends AbstractTopology {
String serviceId = group.getUserObject().toString(); String serviceId = group.getUserObject().toString();
List<ResultEntity> results = null; List<ResultEntity> results = null;
try { try {
results = ServiceController.versionUpdate(serviceId, dynamicVersion); results = ServiceController.versionUpdate(serviceId, dynamicVersion, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -964,7 +977,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -964,7 +977,7 @@ public class ServiceTopology extends AbstractTopology {
String result = null; String result = null;
try { try {
result = ServiceController.versionUpdate(instance, dynamicVersion); result = ServiceController.versionUpdate(instance, dynamicVersion, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -992,7 +1005,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -992,7 +1005,7 @@ public class ServiceTopology extends AbstractTopology {
String serviceId = group.getUserObject().toString(); String serviceId = group.getUserObject().toString();
List<ResultEntity> results = null; List<ResultEntity> results = null;
try { try {
results = ServiceController.versionClear(serviceId); results = ServiceController.versionClear(serviceId, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -1009,7 +1022,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -1009,7 +1022,7 @@ public class ServiceTopology extends AbstractTopology {
String result = null; String result = null;
try { try {
result = ServiceController.versionClear(instance); result = ServiceController.versionClear(instance, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -1060,7 +1073,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -1060,7 +1073,7 @@ public class ServiceTopology extends AbstractTopology {
} else { } else {
List<ResultEntity> results = null; List<ResultEntity> results = null;
try { try {
results = ServiceController.configUpdate(serviceId, dynamicRule); results = ServiceController.configUpdate(serviceId, dynamicRule, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -1078,7 +1091,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -1078,7 +1091,7 @@ public class ServiceTopology extends AbstractTopology {
String result = null; String result = null;
try { try {
result = ServiceController.configUpdate(instance, dynamicRule); result = ServiceController.configUpdate(instance, dynamicRule, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -1121,7 +1134,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -1121,7 +1134,7 @@ public class ServiceTopology extends AbstractTopology {
} else { } else {
List<ResultEntity> results = null; List<ResultEntity> results = null;
try { try {
results = ServiceController.configClear(serviceId); results = ServiceController.configClear(serviceId, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
...@@ -1139,7 +1152,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -1139,7 +1152,7 @@ public class ServiceTopology extends AbstractTopology {
String result = null; String result = null;
try { try {
result = ServiceController.configClear(instance); result = ServiceController.configClear(instance, pushAsyncModeRadioButtonMenuItem.isSelected());
} catch (Exception ex) { } catch (Exception ex) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex); JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), ex);
......
...@@ -9,9 +9,11 @@ show_topology=显示服务拓扑 ...@@ -9,9 +9,11 @@ show_topology=显示服务拓扑
execute_gray_release=执行灰度发布 execute_gray_release=执行灰度发布
execute_gray_router=执行灰度路由 execute_gray_router=执行灰度路由
refresh_gray_state=刷新灰度状态 refresh_gray_state=刷新灰度状态
rule_control_mode=规则推送模式 push_control_mode=推送模式设置
rule_control_mode_to_config_center=推送到远程配置中心 push_async_mode=异步推送
rule_control_mode_to_service=推送到服务 push_sync_mode=同步推送
rule_control_mode_to_config_center=规则推送到远程配置中心
rule_control_mode_to_service=规则推送到服务
title_service_cluster_gray_release=服务集群灰度发布 title_service_cluster_gray_release=服务集群灰度发布
service_cluster_filter=服务集群选取 service_cluster_filter=服务集群选取
......
...@@ -9,9 +9,11 @@ show_topology=\u663e\u793a\u670d\u52a1\u62d3\u6251 ...@@ -9,9 +9,11 @@ show_topology=\u663e\u793a\u670d\u52a1\u62d3\u6251
execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03 execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03
execute_gray_router=\u6267\u884c\u7070\u5ea6\u8def\u7531 execute_gray_router=\u6267\u884c\u7070\u5ea6\u8def\u7531
refresh_gray_state=\u5237\u65b0\u7070\u5ea6\u72b6\u6001 refresh_gray_state=\u5237\u65b0\u7070\u5ea6\u72b6\u6001
rule_control_mode=\u89c4\u5219\u63a8\u9001\u6a21\u5f0f push_control_mode=\u63a8\u9001\u6a21\u5f0f\u8bbe\u7f6e
rule_control_mode_to_config_center=\u63a8\u9001\u5230\u8fdc\u7a0b\u914d\u7f6e\u4e2d\u5fc3 push_async_mode=\u5f02\u6b65\u63a8\u9001
rule_control_mode_to_service=\u63a8\u9001\u5230\u670d\u52a1 push_sync_mode=\u540c\u6b65\u63a8\u9001
rule_control_mode_to_config_center=\u89c4\u5219\u63a8\u9001\u5230\u8fdc\u7a0b\u914d\u7f6e\u4e2d\u5fc3
rule_control_mode_to_service=\u89c4\u5219\u63a8\u9001\u5230\u670d\u52a1
title_service_cluster_gray_release=\u670d\u52a1\u96c6\u7fa4\u7070\u5ea6\u53d1\u5e03 title_service_cluster_gray_release=\u670d\u52a1\u96c6\u7fa4\u7070\u5ea6\u53d1\u5e03
service_cluster_filter=\u670d\u52a1\u96c6\u7fa4\u9009\u53d6 service_cluster_filter=\u670d\u52a1\u96c6\u7fa4\u9009\u53d6
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment