#java #spring
Вопрос:
Я использую spring gateway для пересылки запроса api, теперь я сталкиваюсь со странной проблемой, заключающейся в том, что при обновлении серверной службы api возобновится на очень долгое время. Но серверная служба быстро перезапускается, я пишу серверную службу с помощью rust, перезапуск займет менее 5 секунд, но возобновление работы api займет более 10 минут. Я сбит с толку этой проблемой, моя конфигурация spring gateway forward выглядит так:
# dolphin music
spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.gateway.discovery.locator.lower-case-service-id=true
spring.cloud.gateway.routes[0].id=dolphin-music-service
# forward by ip:port way
spring.cloud.gateway.routes[0].uri=http://10.107.64.246:11014
# forward by service name way
# spring.cloud.gateway.routes[0].uri=lb://
spring.cloud.gateway.routes[0].predicates[0]=Path=/music/**
spring.cloud.gateway.routes[0].filters[0].name=LogFilter2
перед возобновлением api, когда я вызываю api, spring gateway покажет журнал ошибок, подобный этому:
2021-10-09 17:29:19.077 WARN 1 --- [or-http-epoll-1] r.n.h.c.HttpClientConnect : [id: 0x3826e7e1, L:/10.97.196.228:39504 - R:10.107.64.246/10.107.64.246:11014] The connection observed an error
io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer
Я использую команду curl в модуле spring gateway для вызова серверной службы следующим образом:
# curl http://10.107.64.246:11014/music/playlist/v1/playlist -H "accessToken:1" -H "appId:4" -H "userId:16"|jq "."
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 899 100 899 0 0 30032 0 --:--:-- --:--:-- --:--:-- 31000
{
"result": [
{
"id": 2,
"creator": {
"id": 0,
"name": "test",
"avatarUrl": "https://p1.music.126.net/Ue_B2LOqrDupzKLRcxOlxQ==/109951165445776620.jpg",
"nickname": "Xiaoqiang Jiang"
},
"name": "favirate",
"coverUrl": "https://p1.music.126.net/Ue_B2LOqrDupzKLRcxOlxQ==/109951165445776620.jpg",
"description": null,
"subscribed": true,
"subscribedCount": 0,
"commentCount": 0,
"shareCount": 0,
"playCount": 0,
"source": 3,
"trackUpdateTime": 1626501600000,
"trackCount": 0
},
{
"id": 1,
"creator": {
"id": 0,
"name": "test",
"avatarUrl": "https://p1.music.126.net/Ue_B2LOqrDupzKLRcxOlxQ==/109951165445776620.jpg",
"nickname": "Xiaoqiang Jiang"
},
"name": "discovery",
"coverUrl": "https://p1.music.126.net/Ue_B2LOqrDupzKLRcxOlxQ==/109951165445776620.jpg",
"description": null,
"subscribed": true,
"subscribedCount": 0,
"commentCount": 0,
"shareCount": 0,
"playCount": 0,
"source": 3,
"trackUpdateTime": 1626501600000,
"trackCount": 143
}
],
"statusCode": "200",
"resultCode": "200"
}
показывает, что серверная служба была запущена прямо сейчас, почему шлюз spring сообщает об ошибке сброса соединения, несмотря на то, что серверная служба была запущена? что я должен сделать, чтобы решить эту проблему?