2016-04-19 15 views
0

In einem Szenario mit rollendem Upgrade möchte ich wissen, wenn in einem bestimmten Spring MVC-Container keine aktiven HTTP-Anforderungen vorhanden sind (Starter von Spring Boot auf Jetty).Anzahl der aktiven HTTP-Anforderungen in einem Spring-MVC-Container

, dass die folgende Strömung erlauben würde:

  1. Disable-Server in Reverse-Proxy-
  2. Warten für alle Anfragen Ist

Upgrade durchführen

  • beenden es eine Möglichkeit, wie Sie zu sagen, viele Anfragen werden derzeit in Spring MVC oder Jetty bearbeitet?

  • Antwort

    1

    haben Sie können Informationen über die Anzahl der aktiven Anfragen mit Jetty StatisticsHandler und JMX erhalten.

    Wenn Sie Jetty als eingebettetes Behälter verwenden (die empfohlene Vorgehensweise), können Sie eine EmbeddedServletContainerCustomizer verwenden diese einzurichten:

    @Bean 
    public EmbeddedServletContainerCustomizer containerCustomizer() { 
        return new EmbeddedServletContainerCustomizer() { 
    
         @Override 
         public void customize(ConfigurableEmbeddedServletContainer container) { 
          ((JettyEmbeddedServletContainerFactory) container) 
            .addServerCustomizers(new JettyServerCustomizer() { 
    
           @Override 
           public void customize(Server server) { 
            MBeanContainer mbContainer = new MBeanContainer(
              ManagementFactory.getPlatformMBeanServer()); 
            server.addEventListener(mbContainer); 
            server.addBean(mbContainer); 
    
            StatisticsHandler statisticsHandler = new StatisticsHandler(); 
            statisticsHandler.setHandler(server.getHandler()); 
            server.setHandler(statisticsHandler); 
           } 
          }); 
         } 
    
        }; 
    } 
    

    Sie werden eine Abhängigkeit von org.eclipse.jetty:jetty-jmx hinzufügen müssen, um Zugang zu erhalten zu MBeanContainer.

    +0

    Ich benutze das gleiche .... aber jedes Mal, wenn Active Request als 0 und Max Active als 1 erhalten, ist mein Thread-Pool auf 64 Threads beschränkt und ich dränge 500 Anfragen. Kannst du mir bitte erklären, warum das passiert? Meine Statistiken sind - https://pastebin.com/nyMU2aJQ –

    0

    Sie können es mit einem Federbeinantrieb versuchen. Am Endpunkt/den Messwerten sollten Sie das Feld "httpsessions.active"