Commit 59a28663 by Nepxion

增加异步推送模式

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