java - 如何处理高并发的RESTful接口

 小洲相册居士 发布于 2022-10-31 09:09

现在有一个系统,他有两个接口并发量特别高,或者说比其他接口高出几个档次。
那么如何针对这两个接口进行处理?
目前我有几点疑惑。
1、不少高并发网站在指出将模块服务化,这样可以对各个模块进行负载均衡,按需分配,那么他其实是代码层级上就是分开编写的还是只是部署在不同的机器上用nginx转发实现模块化?
2、如果代码不是分开编写的,像这种个别接口访问量高的应该怎么处理。
3、就算是分开编写,每个服务已经自成一个系统,那么如何处理该系统中极个别接口访问量特别高的情况?

现在想到的方法是:
使用nginx负载均衡,针对这两个接口给予专门的服务器集群做处理(代码还是那一套)。
我不知道这样做是不是正确的?因为我为了这两个接口部署了整个系统,我感觉是有问题的。

请各位大牛指点迷津,或提供一些参考资料。

1 个回答
  • 你先看看是否有重复的请求,如果有大量的重复请求的话,并且你的接口返回的响应是幂等的,那你可以在用缓存来挡掉大部分重复请求。
    之后再考虑把两个接口单独部署看看单机是否可以支持,如果单机不行,那只能把接口变成集群的,前面用nginx来做负载均衡,可以用ip hash或者round robin。
    还可以前面加队列来限制请求,这个就依赖你的业务需要,比如有些业务同时只能接受100个请求,那同时处理1000个请求也是没任何意义的。
    最终的方案还是依赖你的业务需要的决定的。

    2022-10-31 22:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有