为同一个微服务提供两个独立的控制器会是一个好方法吗?

时间:2017-05-18 19:41:40

标签: spring-boot microservices

我有一个基于Spring-boot的微服务,目前正在从Mobile-APP中受到攻击。现在我们正在为同一个微服务开发一个浏览器基础客户端。要求& mobile-App和浏览器之间的响应参数相同。 mobile-APP中的用户数量约为每秒10000个,浏览器的用户数量约为每秒20000个。因此,这个微服务每秒会有超过30000次点击。

我们知道" Spring控制器是单例(每个Web应用程序只有一个控制器实例)"。

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

我正在寻找通过这两个频道处理越来越多的点击量的最好方法吗?

任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

当您拥有相同的请求和响应,检索到浏览器和移动客户端时,创建两个差异控制器或服务是没有意义的。使用一个控制器保持您的应用程序简单,以完成工作。有了这个,您的服务就会以同样的方式看到移动和Web客户端。

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