Я использую аннотации @RequestMapping и @ResponseBody, чтобы сделать простой ответ проверки работоспособности (OK / FAILED), когда балансировщик нагрузки вызывает мое приложение.Это мой код:
@Controller
public class HealthCheck {
protected ir.iic.release.middleware.persistence.JDBCController JDBCController;
@Autowired
@Qualifier("JDBCController")
public void setJDBCController(JDBCController JDBCController) {
this.JDBCController = JDBCController;
}
@RequestMapping(value = "/healthCheck", method = RequestMethod.GET)
@ResponseBody
String getHealthStatus() {
long connectionStatus = 1;
try {
connectionStatus = JDBCController.queryForLong("SELECT 1 FROM DUAL");
} catch (Exception e) {
connectionStatus = 0;
}
return (connectionStatus == 1 ? "OK" : "FAILED");
}
}
все работает нормально, когда я вызываю указанный URL-адрес через браузер, но балансировщик нагрузки не принимает ответ.Я проверил ответ с помощью утилиты WireShark для мониторинга пакетов, в потоке HTTP нет проблем, но в потоке TCP выглядит, что существуют дополнительные символы до и после ответа OK / FAILED.Это поток TCP:
GET /iic-auto/cluster/healthCheck HTTP/1.1
Host: 192.168.136.37:9001
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: JSESSIONID=3hdJcJXJPvVtbndx27hqrbcK81Qj7gFF660mLj5jnTXg5rWT26j0!-2081249701
Upgrade-Insecure-Requests: 1
HTTP/1.1 200 OK
Date: Sat, 15 Dec 2018 06:19:54 GMT
Transfer-Encoding: chunked
Content-Type: text/html
X-Powered-By: Servlet/2.5 JSP/2.1
0002
OK
HTTP/1.1 200 OK
Date: Sat, 15 Dec 2018 06:19:54 GMT
Transfer-Encoding: chunked
Content-Type: text/html
X-Powered-By: Servlet/2.5 JSP/2.1
0002
OK
0000
Кто-нибудь знает, как я могу решить эту проблему?Спасибо за вашу помощь.