现在有一个系统,他有两个接口并发量特别高,或者说比其他接口高出几个档次。
那么如何针对这两个接口进行处理?
目前我有几点疑惑。
1、不少高并发网站在指出将模块服务化,这样可以对各个模块进行负载均衡,按需分配,那么他其实是代码层级上就是分开编写的还是只是部署在不同的机器上用nginx转发实现模块化?
2、如果代码不是分开编写的,像这种个别接口访问量高的应该怎么处理。
3、就算是分开编写,每个服务已经自成一个系统,那么如何处理该系统中极个别接口访问量特别高的情况?
现在想到的方法是:
使用nginx负载均衡,针对这两个接口给予专门的服务器集群做处理(代码还是那一套)。
我不知道这样做是不是正确的?因为我为了这两个接口部署了整个系统,我感觉是有问题的。
请各位大牛指点迷津,或提供一些参考资料。
먼저 중복 요청이 있는지 확인하세요. 중복 요청이 많고 인터페이스에서 반환된 응답이 멱등적이라면 캐싱을 사용하여 대부분의 중복 요청을 차단할 수 있습니다.
나중에 단일 시스템이 이를 지원할 수 있는지 확인하기 위해 두 개의 인터페이스를 별도로 배포하는 것을 고려하십시오. 단일 시스템이 이를 지원할 수 없는 경우 인터페이스를 클러스터로만 전환할 수 있습니다. 이전 단계에서는 로드 밸런싱을 위해 nginx를 사용했습니다. .IP 해시 또는 라운드 로빈을 사용할 수 있습니다.
앞에 대기열을 추가하여 요청을 제한할 수도 있습니다. 이는 비즈니스 요구 사항에 따라 다릅니다. 예를 들어 일부 기업은 동시에 100개의 요청만 수락할 수 있으므로 동시에 1,000개의 요청을 처리하는 것은 의미가 없습니다. .
최종 계획은 비즈니스 요구 사항에 따라 달라집니다.