我想用tomcat开发一个Spring后端应用程序。我期望1000到5000活跃用户。用户将创建来自客户端(Android、web、Ios)的后端请求。大多数请求将创建一个简单的db select。
谢谢
发布于 2017-03-21 13:36:58
了解用户的数量是有用的,但这还不够。
至少,您应该能够在peek时间和所需的响应时间中估计每秒预期的请求数。
一旦您知道了这一点,了解这些限制的最安全的方法就是通过简单的Java程序或类似于JMeter的东西来测试性能。
对于典型的tomcat性能,请看一看,例如:how to handle 2000+ requests/sec on tomcat?
一般来说,Spring不会增加太多的性能损失,而且还可以有一个tomcat实例集群,因此瓶颈可能在其他地方,例如DB中。
至于微服务问题,从最简单的方法( monolith)开始,确保您遵循标准的SW开发实践,即有模块和类等。以后可以转移到微服务,但您应该有一个真正的原因,因为它更复杂。
发布于 2017-03-21 13:53:24
使用适当的拦截器,你可以做任何你想做的事。您可以计数线程数(使用静态变量),并每秒钟重置一次,或者使用线程进行重置。
@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项目、一个静态资产项目和/或任何其他公共项目(如果需要的话))。
https://stackoverflow.com/questions/42928059
复制相似问题