java - 计算 Spring MVC 容器中 Activity HTTP 请求的数量

标签 java spring spring-mvc spring-boot jetty

在滚动升级场景中,我想知道给定 Spring MVC 容器(由 Spring Boot 启动,在 Jetty 上运行)中何时没有 Activity 的 HTTP 请求。

这将允许以下流程:

  1. 在反向代理中禁用服务器
  2. 等待所有请求完成
  3. 执行升级

有没有办法知道 Spring MVC 或 Jetty 当前正在处理多少个请求?

最佳答案

您可以使用 Jetty 的 StatisticsHandler 和 JMX 获取有关 Activity 请求数量的信息。

如果您使用 Jetty 作为嵌入式容器(推荐方法),则可以使用 EmbeddedServletContainerCustomizer 进行设置:

@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);
                }
            });
        }

    };
}

您需要添加对 org.eclipse.jetty:jetty-jmx 的依赖项才能访问 MBeanContainer

关于java - 计算 Spring MVC 容器中 Activity HTTP 请求的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36720880/

相关文章:

java - 获取具有某些条件的 tableView 项目的特定行(JavaFX)

java - Spring MVC 中的 Redisson Hibernate 2L 缓存配置问题

database - 使用 Spring Data JPA 或 Hibernate 的新 Spring MVC 项目?

java - 使用 modeshape 在 JCR 存储库中递归移动节点

java - 将 XML 文档插入到另一个 XML 文档上的特定节点 (java)

java - 使用@SpringBean 将 ApplicationContext 注入(inject) Wicket 组件失败

java - JpaRepository - 删除方法 - 通知实体不存在

java - Criteria API 查询失败

java - 使用多 Action Controller

java - 解析映射器 XML 时出错。原因 : java. lang.NullPointerException