现在有一个系统,他有两个接口并发量特别高,或者说比其他接口高出几个档次。
那么如何针对这两个接口进行处理?
目前我有几点疑惑。
1、不少高并发网站在指出将模块服务化,这样可以对各个模块进行负载均衡,按需分配,那么他其实是代码层级上就是分开编写的还是只是部署在不同的机器上用nginx转发实现模块化?
2、如果代码不是分开编写的,像这种个别接口访问量高的应该怎么处理。
3、就算是分开编写,每个服务已经自成一个系统,那么如何处理该系统中极个别接口访问量特别高的情况?
现在想到的方法是:
使用nginx负载均衡,针对这两个接口给予专门的服务器集群做处理(代码还是那一套)。
我不知道这样做是不是正确的?因为我为了这两个接口部署了整个系统,我感觉是有问题的。
请各位大牛指点迷津,或提供一些参考资料。
Vérifiez d'abord s'il y a des demandes en double. S'il y a un grand nombre de demandes en double et que la réponse renvoyée par votre interface est idempotente, vous pouvez utiliser la mise en cache pour bloquer la plupart des demandes en double.
Ensuite, pensez à déployer les deux interfaces séparément pour voir si une seule machine peut la prendre en charge. Si une seule machine ne peut pas la prendre en charge, vous pouvez uniquement transformer l'interface en cluster. Dans l'étape précédente, nginx a été utilisé pour l'équilibrage de charge. . Vous pouvez utiliser le hachage IP ou le round robin.
Vous pouvez également ajouter une file d'attente devant pour limiter les demandes. Cela dépend des besoins de votre entreprise. Par exemple, certaines entreprises ne peuvent accepter que 100 demandes en même temps, cela n'a donc aucun sens de traiter 1 000 demandes en même temps. .
Le plan final dépend toujours des besoins de votre entreprise.