Я хочу, чтобы мой входящий запрос dropwizard был равен 3. Итак, если сервер обслуживает 3 запроса, я хочу отправить код ответа 503: «Достигнутая емкость сервера».Dropwizard: конфигурация MaxQueuedRequests
Я знаю Dropwizard имеет конфигурацию для макс очереди запросов:
MaxQueuedRequests
По умолчанию это 1024. Однако, я не знаю, как играть с этим параметром. Когда я делаю это 3, мой сервер не запускается.
Если кто-нибудь может помочь предоставить более подробную информацию о том, какой предпочтительный шаблон дизайна использовать для достижения этого?
Один из способов, о котором я думаю, заключается в том, чтобы иметь глобальную (или статическую) переменную, чтобы держать счетчик. И для каждого запроса я увеличиваю счетчик. , когда счетчик> 3, я отвечаю с кодом 503.
Хотите услышать больше мыслей об этом.
редактировать:
Так что я был в состоянии добиться прогресса в следующем @pandaadb ответ. Однако, я ударил другой контрольно-пропускной пункт :( Это то, что моя конфигурация выглядит следующим образом:
server:
minThreads: 2
maxQueuedRequests: 3
type: simple
applicationContextPath:/
adminContextPath: /admin
connector:
type: http
port: 9999
С этим, я получаю следующее исключение:
WARN [2016-06-23 08:38:52,354] io.dropwizard.setup.AdminEnvironment:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! THIS APPLICATION HAS NO HEALTHCHECKS. THIS MEANS YOU WILL NEVER KNOW !
! IF IT DIES IN PRODUCTION, WHICH MEANS YOU WILL NEVER KNOW IF YOU'RE !
! LETTING YOUR USERS DOWN. YOU SHOULD ADD A HEALTHCHECK FOR EACH OF YOUR !
! APPLICATION'S DEPENDENCIES WHICH FULLY (BUT LIGHTLY) TESTS IT. !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
INFO [2016-06-23 08:38:52,358] org.eclipse.jetty.server.handler.ContextHandler: Started [email protected]{/admin,null,AVAILABLE}
WARN [2016-06-23 08:38:52,363] org.eclipse.jetty.util.thread.QueuedThreadPool: dw{STARTED,2<=3<=1024,i=0,q=3} rejected [email protected]
WARN [2016-06-23 08:38:52,367] org.eclipse.jetty.util.component.AbstractLifeCycle: FAILED [email protected]289ba785: java.util.concurrent.RejectedExecutionException: [email protected]
! java.util.concurrent.RejectedExecutionException: [email protected]
! at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:362) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:160) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:258) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:256) [jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81) [jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236) [jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.Server.doStart(Server.java:366) [jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.Cli.run(Cli.java:70) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.Application.run(Application.java:73) [dropwizard-core-0.8.2.jar:0.8.2]
! at net.lacework.eventgen.EventGeneratorMain.main(EventGeneratorMain.java:16) [classes/:na]
! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]
! at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]
! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
! at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
! at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na]
WARN [2016-06-23 08:38:52,368] org.eclipse.jetty.util.component.AbstractLifeCycle: FAILED [email protected]22{HTTP/1.1}{0.0.0.0:9999}: java.util.concurrent.RejectedExecutionException: [email protected]
! java.util.concurrent.RejectedExecutionException: [email protected]
! at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:362) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:160) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:258) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:256) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.Server.doStart(Server.java:366) [jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) [jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.Cli.run(Cli.java:70) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.Application.run(Application.java:73) [dropwizard-core-0.8.2.jar:0.8.2]
! at net.lacework.eventgen.EventGeneratorMain.main(EventGeneratorMain.java:16) [classes/:na]
! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]
! at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]
! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
! at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
! at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na]
WARN [2016-06-23 08:38:52,368] org.eclipse.jetty.util.component.AbstractLifeCycle: FAILED [email protected]: java.util.concurrent.RejectedExecutionException: [email protected]
! java.util.concurrent.RejectedExecutionException: [email protected]
! at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:362) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:160) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:258) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:256) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.Server.doStart(Server.java:366) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.Cli.run(Cli.java:70) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.Application.run(Application.java:73) [dropwizard-core-0.8.2.jar:0.8.2]
! at net.lacework.eventgen.EventGeneratorMain.main(EventGeneratorMain.java:16) [classes/:na]
! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]
! at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]
! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
! at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
! at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na]
ERROR [2016-06-23 08:38:52,368] io.dropwizard.cli.ServerCommand: Unable to start server, shutting down
! java.util.concurrent.RejectedExecutionException: [email protected]
! at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:362) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:160) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:258) ~[jetty-io-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:256) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.server.Server.doStart(Server.java:366) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[jetty-util-9.2.9.v20150224.jar:9.2.9.v20150224]
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43) ~[dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.cli.Cli.run(Cli.java:70) [dropwizard-core-0.8.2.jar:0.8.2]
! at io.dropwizard.Application.run(Application.java:73) [dropwizard-core-0.8.2.jar:0.8.2]
В идеале, я хотел бы попробовать делая ограничение моих запросов на сервер равным 1. Так что он обслуживает только 1 запрос за раз. Кроме того, я не знаю, какие новые запросы поступают в WAIT. Вместо этого сервер должен отклонить их с помощью некоторого кода ответа.
Я не уверен, что у dropwizard уже есть эта встроенная.
что ваше исключение? Отправьте свой yaml config, пожалуйста. – pandaadb