如何处理高并发的RESTful接口
现在有一个系统,他有两个接口并发量特别高,或者说比其他接口高出几个档次。
那么如何针对这两个接口进行处理?
目前我有几点疑惑。
1、不少高并发网站在指出将模块服务化,这样可以对各个模块进行负载均衡,按需分配,那么他其实是代码层级上就是分开编写的还是只是部署在不同的机器上用nginx转发实现模块化?
2、如果代码不是分开编写的,像这种个别接口访问量高的应该怎么处理。
3、就算是分开编写,每个服务已经自成一个系统,那么如何处理该系统中极个别接口访问量特别高的情况?
现在想到的方法是:
使用nginx负载均衡,针对这两个接口给予专门的服务器集群做处理(代码还是那一套)。
我不知道这样做是不是正确的?因为我为了这两个接口部署了整个系统,我感觉是有问题的。
请各位大牛指点迷津,或提供一些参考资料。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你先看看是否有重复的请求,如果有大量的重复请求的话,并且你的接口返回的响应是幂等的,那你可以在用缓存来挡掉大部分重复请求。
之后再考虑把两个接口单独部署看看单机是否可以支持,如果单机不行,那只能把接口变成集群的,前面用nginx来做负载均衡,可以用ip hash或者round robin。
还可以前面加队列来限制请求,这个就依赖你的业务需要,比如有些业务同时只能接受100个请求,那同时处理1000个请求也是没任何意义的。
最终的方案还是依赖你的业务需要的决定的。