Spring boot 对于同一个微服务,使用两个单独的控制器是否是一个好方法?

Spring boot 对于同一个微服务,使用两个单独的控制器是否是一个好方法?,spring-boot,microservices,Spring Boot,Microservices,我有一个基于Spring boot的微服务,目前正在一个移动应用程序中使用。现在,我们正在为相同的微服务开发基于浏览器的客户端。移动应用程序和浏览器之间的请求和响应参数相同。移动应用程序中的用户数约为每秒10000,而浏览器中的用户数约为每秒20000。因此,这项微服务每秒的点击量将超过30000次 我们知道“Spring控制器是单例的(每个web应用程序只有一个控制器实例)” 对于同一个微服务,有两个单独的控制器(一个用于移动应用程序用户,另一个用于浏览器用户),这是否是一个好方法(就性能而言

我有一个基于Spring boot的微服务,目前正在一个移动应用程序中使用。现在,我们正在为相同的微服务开发基于浏览器的客户端。移动应用程序和浏览器之间的请求和响应参数相同。移动应用程序中的用户数约为每秒10000,而浏览器中的用户数约为每秒20000。因此,这项微服务每秒的点击量将超过30000次

我们知道“Spring控制器是单例的(每个web应用程序只有一个控制器实例)”

对于同一个微服务,有两个单独的控制器(一个用于移动应用程序用户,另一个用于浏览器用户),这是否是一个好方法(就性能而言)?它会通过让两个实例并行运行来提高微服务性能吗

我正在寻找最好的方式来处理通过这两个渠道的点击量增加


如有任何建议,我们将不胜感激。

如果您有相同的请求和响应,并已检索到浏览器和移动客户端,则无需创建两个差异控制器或服务。只需一个控制器即可让应用程序保持简单。这样,您的服务就可以以相同的方式看待移动和web客户端

每当应用程序必须处理的负载增加时,您可以使用路由、负载平衡器服务(如zuul、nginx)进行水平扩展。
只需根据需要处理的负载放大/缩小负载平衡器后面的实例。

如果控制器内部执行的逻辑相同,则没有必要创建两个控制器。每个请求都是一个单独的线程。更好的做法是将应用程序扩展到多个实例/服务器上,并添加负载平衡器