首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring后端每秒请求和性能限制

问Spring后端每秒请求和性能限制
EN

Stack Overflow用户
提问于 2017-03-21 13:06:02
回答 2查看 16.5K关注 0票数 1

我想用tomcat开发一个Spring后端应用程序。我期望1000到5000活跃用户。用户将创建来自客户端(Android、web、Ios)的后端请求。大多数请求将创建一个简单的db select。

  • 如何计算每秒请求的极限?
  • 如何估计性能极限?
  • 我应该使用Microservice体系结构还是单块的?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-03-21 13:36:58

了解用户的数量是有用的,但这还不够。

至少,您应该能够在peek时间和所需的响应时间中估计每秒预期的请求数。

一旦您知道了这一点,了解这些限制的最安全的方法就是通过简单的Java程序或类似于JMeter的东西来测试性能。

对于典型的tomcat性能,请看一看,例如:how to handle 2000+ requests/sec on tomcat?

一般来说,Spring不会增加太多的性能损失,而且还可以有一个tomcat实例集群,因此瓶颈可能在其他地方,例如DB中。

至于微服务问题,从最简单的方法( monolith)开始,确保您遵循标准的SW开发实践,即有模块和类等。以后可以转移到微服务,但您应该有一个真正的原因,因为它更复杂。

票数 1
EN

Stack Overflow用户

发布于 2017-03-21 13:53:24

使用适当的拦截器,你可以做任何你想做的事。您可以计数线程数(使用静态变量),并每秒钟重置一次,或者使用线程进行重置。

代码语言:javascript
复制
@Component
public class RequestLoggingInterceptor extends OncePerRequestFilter
{

@Override
protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response, final FilterChain filterChain) throws ServletException, IOException {
    final long start = System.nanoTime();
    try {
        filterChain.doFilter(request, response);
    } finally {
        if( _logger.isInfoEnabled() ) {
            final long end = System.nanoTime();
            logger.info(buildMessage(request, end - start));
        }
    }
}

微型服务或单调的设计是根据您的要求。如果您有一个大的应用程序和许多模块,并且希望这些模块独立工作,并且可能有不同的数据库,那么您可以选择microservices。微型服务有很多优势,但只有当你需要它们的时候。对于基本操作来说,普通的单块是好的(一个rest项目、一个静态资产项目和/或任何其他公共项目(如果需要的话))。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42928059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档