next-evolve-x commented on issue #6461:
URL: https://github.com/apache/shenyu/issues/6461#issuecomment-5117710569
` private void masterCheck() {
if (LOG.isDebugEnabled()) {
LOG.debug("master checking task start...");
}
if (CollectionUtils.isEmpty(clients)) {
List<String> urls = websocketConfig.getUrls();
for (String url : urls) {
if
(StringUtils.isNotEmpty(websocketConfig.getAllowOrigin())) {
Map<String, String> headers =
ImmutableMap.of(ORIGIN_HEADER_NAME,
websocketConfig.getAllowOrigin());
clients.add(
new ShenyuWebsocketClient(
URI.create(url),
headers,
Objects.requireNonNull(pluginDataSubscriber),
metaDataSubscribers,
authDataSubscribers,
proxySelectorDataSubscribers,
discoveryUpstreamDataSubscribers,
this.aiProxyApiKeyDataSubscribers,
namespaceId,
serverProperties.getPort()));
} else {
clients.add(
new ShenyuWebsocketClient(
URI.create(url),
Objects.requireNonNull(pluginDataSubscriber),
metaDataSubscribers,
authDataSubscribers,
proxySelectorDataSubscribers,
discoveryUpstreamDataSubscribers,
this.aiProxyApiKeyDataSubscribers,
namespaceId,
serverProperties.getPort()));
}
}
}
Iterator<ShenyuWebsocketClient> iterator = clients.iterator();
while (iterator.hasNext()) {
ShenyuWebsocketClient websocketClient = iterator.next();
if (!websocketClient.isOpen()) {
iterator.remove();
continue;
}
String runningMode = websocketClient.getRunningMode();
// check running mode
if (Objects.equals(runningMode,
RunningModeEnum.STANDALONE.name())) {
LOG.info("admin running in standalone mode...");
timerTask.cancel();
return;
}
if (!websocketClient.isConnectedToMaster()) {
websocketClient.nowClose();
iterator.remove();
}
}
}`
应该是这里面的runningMode
可能检查的时候,Admin还没有返回导致runningMode是null,且isConnectedToMaster是false,导致关闭掉
等到下一次定时任务,不断重复这个逻辑
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]