当前位置:网站首页>"N'osez pas douter du Code, vous devez douter du Code" notez une analyse de délai de demande réseau
"N'osez pas douter du Code, vous devez douter du Code" notez une analyse de délai de demande réseau
2022-06-22 13:42:00 【51CTO】
Résumé:Ce positionnement,C'est assez compliqué,Et parfois les gens ne pensent pas,Parce que la même interface,C'est bon de changer d'environnement,J'ai peur de douter du Code;Mais les circonstances problématiques,Un autre connecteur serait parfait,Je dois encore douter du Code
Cet article est partagé par Huawei Cloud Community《 Analyse du temps d'arrêt d'une demande de réseau》,Auteur:xiewenci .
Phénomène problématique
LancementhttpDemande,Interface de service arrière/v5/iot/11c9c88e6fb26bead43b75514dc380eb/routing-rule/rules?limit=10&marker=ffffffffffffffffffffffff&offset=0,J'ai attendu.,Retour à la réponse dans une minute,Et le Code chinois est affiché
Processus d'analyse
1.Délimitez d'abord,Changer le même Code de version dans un environnement normal et anormal,Tester la même interface,Mais l'environnement normal est normal,Environnement anormal ou attente1Minutes,Donc je pense que c'est un problème environnemental,Et ensuite,Prends le sac.
2.Capturer des paquets dans des environnements anormaux et normaux respectivement,Voir la figure ci - dessous pour plus de détails sur le flux:
Informations sur le flux pour un environnement anormal

Informations sur le flux dans un environnement normal

D'après le graphique, l'environnement normal est,Une fois la réponse envoyée par le serveur terminée,Retour normal du clientACK,Ensuite, il est initié par le clientFINDemande de rupture de chaîne.L'environnement d'exception est une fois que le serveur a envoyé la réponse,Le client a aussi réponduACK,Mais il n'y a pas eu de demande active de rupture de chaîne,Jusqu'àkeep-aliveAprès le temps,Demande de rupture de chaîne initiée par le serveur(Parce que le temps de rupture active de la chaîne).Le phénomène est que le client attend que le serveur envoie une réponse(Il n'a peut - être pas fini d'envoyer),Donc suspectez le serveur d'avoir un cache ou quelque chose comme ça,Le flux de réponse n'a pas été envoyé à temps,Alors continuez à regarder le Code
3.Voir le Code,En revenant au client,Non.flushEtcloseFonctionnement,Les codes sont les suivants:

Et j'ai pensé que j'avais trouvé la cause du problème,Essayez de modifier le Code,Comme suit:

AjoutéflushFonctionnement etcloseFonctionnement(C'est parti.tryVite!),Test final effectué,Toujours en accord avec le phénomène initial,Toujours attendre1La réponse ne sera pas retournée avant quelques minutes.C'est un peu déroutant,Et une analyse plus approfondie de l'obscénité,En fait, ça se voit dans le courant.,La réponse du serveur a été immédiatement retournée au client,Comme le montre la figure ci - dessous:

Maintenant qu'on a répondu,Alors pourquoi le client continue d'attendre?Voici quelques points d'interrogation sur le graphique,C'est en fait un caractère chinois mal codé,Donc ici encore, on se demande si le format d'encodage a conduit le client à recevoirContent-LengthLa longueur ne correspond pas à la longueur de la réponse reçue,C'est - à - dire que la longueur réelle de la réponse reçue par le client est inférieure àContent-LengthLongueur,Et j'ai attendu,Alors continuez à modifier le Code
4.Modifier le Code,Le format d'encodage spécifié estUTF-8,Les codes sont les suivants::

Remplacer la version environnementale,Exécution des essais,La réponse est revenue immédiatement,C'est le pot de ce format de codage
Examen des causes
1.Une incohérence dans le format de codage peut entraîner une incohérence dans la longueur réelle du flux de réponse?La réponse est certaine,Format de codage incohérent,La longueur réelle serait incohérente,Les résultats des essais sont les suivants::

2.Pourquoi ce problème n'est - il pas apparu avant?Quelle est la cause de la perte du format de codage
Voir les services d'arrière - planjarSac,DécouvertespringLa version a été mise à jour vers5.2.21.RELEASE,Le format d'encodage par défaut n'est pas spécifié dans cette version commeUTF-8

Un service d'arrière - plan est donc nécessaire pour spécifier le format d'encodage,Ou le Service de passerelle est unifié
Résumé et réflexion
Ce positionnement,C'est assez compliqué,Et parfois les gens ne pensent pas,Parce que la même interface,C'est bon de changer d'environnement,J'ai peur de douter du Code;Mais les circonstances problématiques,Un autre connecteur serait parfait,Je dois encore douter du Code;Il y a aussi l'interface d'appel dans le conteneur,C'est le même problème.,Ça n'a rien à voir avec Internet. En fait, il faut se calmer et réfléchir à la raison pour laquelle les clients attendent ,Pas de rupture active de la chaîne,C'est toujours vraiHTTPDétails de l'Accord,Pas assez compétent,Ce n'est qu'au milieu qu'il y a eu quelques erreurs,Besoin de consolider et d'approfondirhttpInterprétation de l'accord.
Cliquez sur suivre,Pour la première fois, découvrez la nouvelle technologie Huawei Cloud~
边栏推荐
- Système de classification des déchets et de gestion des transports basé sur SSM, exemple de thèse de diplôme de haute qualité (peut être utilisé directement), code source, script de base de données, t
- 基于SSM的图书馆管理系统,高质量毕业论文范例(可直接使用),项目导入视频,附送源码和数据库脚本,论文撰写教程
- Oracle's skills in dealing with inserting duplicate records
- Interaction between awk language and Oracle database for nearly half a year
- 文件下载漏洞&文件读取漏洞&文件删除漏洞
- 散户开户哪个证券公司好?手机开户安全么?
- 论文专利博客写作总结
- Acwing game 55
- Locks in MySQL
- 476. Number Complement
猜你喜欢

257. Binary Tree Paths

130. Surrounded Regions

Leetcode 297 match de la semaine

Leetcode math problems

hw在即,你还不会看危险报文?

In June, China database industry analysis report was released! Smart wind, train storage and regeneration

Leetcode union search set

Shell基础入门

After several years of writing at CSDN, I published "the first book". Thank you!

别再用 System.currentTimeMillis() 统计耗时了,太 Low,StopWatch 好用到爆!
随机推荐
redis主备配置dockercompose版
leetcode-区间dp
Docker installing PostgreSQL
使用SQLAlchemy进行组合分页查询
Leetcode knapsack problem
openGauss数据库源码解析系列文章—— 密态等值查询技术详解
257. Binary Tree Paths
SSM based library management system, high-quality graduation thesis example (can be used directly), project import video, attached source code and database script, Thesis Writing Tutorial
基于JSP的图书馆管理系统,包含源码,数据库脚本,项目运行视频教程,毕设论文撰写视频教程
Tips of setup in robotframework
Performance related indicators
leetcode 829. Sum of continuous integers
从零开始写一个契约测试工具——数据库设计
论文专利博客写作总结
Problème de sous - séquence / substrat leetcode
leetcode 11. Container with the most water
史蒂芬·柯维写给年轻人的高效工作秘笈
12306 ticket grabbing tutorial
Uninstall MySQL 8
Istio服务网格中的流量复制