Мой Jetty обслуживает запросы к / myservice / *
Моя проблема заключается в том, что, когда очередь сервера заполняется, запросы проверки работоспособности на / healthcheck начинают давать сбой.
Возможно лиесть отдельная очередь для моих проверок работоспособности, или есть ли другой способ сделать это? import java.io.IOException;
Вот пример сервера:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
/**
* Based on:
* https://www.eclipse.org/jetty/documentation/9.4.x/embedded-examples.html
*/
public class HealthCheckServer
{
public static void main( String[] args ) throws Exception
{
Server server = new Server(8086);
QueuedThreadPool qtp = (QueuedThreadPool) server.getThreadPool();
qtp.setMaxThreads(6);
ServletHandler handler = new ServletHandler();
server.setHandler(handler);
handler.addServletWithMapping(HelloServlet.class, "/hello");
handler.addServletWithMapping(HealthServlet.class, "/health");
server.start();
server.join();
}
@SuppressWarnings("serial")
public static class HelloServlet extends HttpServlet
{
@Override
protected void doGet( HttpServletRequest request,
HttpServletResponse response ) throws ServletException,
IOException
{
try {
Thread.sleep(10*1000); // 10 sec
} catch (InterruptedException e) {
e.printStackTrace();
}
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>Hello from HelloServlet</h1>");
}
}
@SuppressWarnings("serial")
public static class HealthServlet extends HttpServlet
{
@Override
protected void doGet( HttpServletRequest request,
HttpServletResponse response ) throws ServletException,
IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("all good captain");
}
}
}
Если вы нажмете http://localhost:8086/hello 4 раза, тогда http://localhost:8086/health не будет реагировать.