Maison >Applet WeChat >Développement WeChat >Dépannage d'alarme pour le développement de WeChat

Dépannage d'alarme pour le développement de WeChat

Y2J
Y2Joriginal
2017-05-16 11:07:518325parcourir

Description récapitulative

La plateforme publique WeChat a été ouverte au publicInterfaceAlarme, lorsque le nombre de tentatives infructueuses du serveur WeChat pour envoyer des messages aux développeurs atteint un seuil prédéterminé, le un message d'alarme sera envoyé à l'alarme WeChat désignée. Dans le groupe (méthode de configuration : plate-forme publique -> Centre de développement -> Alarme d'interface), les développeurs sont invités à prêter activement attention à l'alarme, à résoudre le problème immédiatement et à améliorer la qualité du service. du compte officiel WeChat.

Afin de mieux résoudre les problèmes en fonction des exemples à la fin des informations d'alarme (openid et horodatage estampille sont fournis), les développeurs doivent Plus des journaux détaillés contenant des informations clés pour aider rapidement localiser les problèmes.

Il existe actuellement 2 types d'alarmes :

1. Les alarmes générales, auxquelles tous les développeurs doivent prêter attention.

Dépannage dalarme pour le développement de WeChat

2. Si la plateforme tierce de compte public appelle la police, vous ne pouvez postuler pour devenir développeur de la plateforme tierce de compte public que sur la plateforme ouverte WeChat. (open.weixin.qq.com). Ce n'est qu'alors que vous devez faire attention à cette alarme.

Dépannage dalarme pour le développement de WeChat

Voici des exemples d'alarmes spécifiques et des directives de dépannage.

Description du contenu de l'alarme

Description du contenu de l'alarme :

a)appid : appid du compte officiel
b)surnom : pseudonyme du compte officiel
c) Heure : Toutes les alarmes indiqueront l’heure à laquelle l’anomalie s’est produite pour la première fois. (comme l'heure à laquelle le premier timeout s'est produit, l'heure à laquelle le premier échec de réponse s'est produit)
d) Contenu : description spécifique de l'erreur
e) Nombre de fois : le nombre d'échecs
f) Exemple d'erreur : dans l'exemple d'erreur, note quelques informations pour vous aider à résoudre le problème. Par exemple : l'adresse IP et le type de message push du développeur qui a expiré pour la première fois. Si la réponse échoue, l'exemple d'erreur indiquera également la réponse du développeur lorsque la première réponse a échoué.

Généralement, grâce à l'adresse IP, à l'heure et au type de message fournis par l'alarme, la cause du problème tiers peut être rapidement localisée.

Exemple d'alarme 1 : alarme d'expiration

Appid : wxxxxxx
Pseudo : WxNickName
Heure : 2014-12-01 20:12:00
Contenu : Après que le serveur WeChat ait transmis un message ou un événement au compte officiel, le développeur n'a pas renvoyé le
décompte dans les 5 secondes : 1 272 fois en 5 minutes
Exemple d'erreur : [IP=203.205. 140.29][Event= UnSubscribe]

Cette alarme signifie : lorsque le serveur WeChat a transmis l'événement de désabonnement au développeur, celui-ci n'a pas renvoyé le résultat dans les 5 secondes. Cela s'est produit 1272 fois au cours des 5 minutes du 01/12/2014 à 20:12:00 au 01/12/2014 à 20:17:00. Le premier délai d'attente survenu dans les 5 minutes était : 2014-12-01 20:12:00, l'adresse IP du développeur était : 203.205.140.29 et le type d'événement était un événement de non-suivi.

Exemple d'alarme 2 : Échec de la réponse

Appid : wxxxx
Pseudo : WxNickName
Heure : 2014-12-01 20:12:00
Contenu : après que le serveur WeChat a transmis un message ou un événement au compte officiel, la réponse reçue était illégale
Nombre de fois : 1320 fois en 5 minutes
Exemple d'erreur : [Event=Click] [ip=58.248. 9.218][response_length= 10][response_content=Error 500:]

Cette alarme signifie : Lorsque le serveur WeChat pousse l'événement de clic menu personnalisé pour le développeur, le développeur Le résultat renvoyé est illégal. Cela s'est produit 1320 fois en 5 minutes du 01/12/2014 à 20:12:00 au 01/12/2014 à 20:17:00. La première fois que la réponse a échoué dans les 5 minutes était : 2014-12-01 20:12:00, l'adresse IP du développeur était : 58.248.9.218, le type d'événement était un événement de menu contextuel et la longueur du contenu renvoyé par le troisième partie était de 10 octets, le contenu est "Erreur 500 :".

Exemple d'alarme 3 : Délai d'expiration de la connexion

Appid : wxxxx
Pseudo : WxNickName
Heure : 04/02/2015 20:13:09
Contenu : un délai d'attente s'est produit lorsque le serveur WeChat s'est connecté au serveur du développeur de compte public. Le délai d'expiration est de 5 secondes.
Nombre de fois : 7 289 fois en 5 minutes
Exemple d'erreur : [IP=180.150.190.135][. Msg=Text]

Cette alarme signifie : lorsque le serveur WeChat envoie des messages texte des fans au développeur, il ne peut pas se connecter à l'adresse du serveur renseignée par le développeur. Cela s'est produit 7 289 fois en 5 minutes, du 04/02/2015 à 20:13:09 au 04/02/2015 à 20:18:00. Le premier délai d'attente de connexion survenu au cours de ces 5 minutes était le suivant : 04/02/2015 à 20h13 : 09, l'adresse IP du développeur est : 180.150.190.135, et le type d'événement est un message poussé par l'utilisateur.

Méthodes de dépannage pour diverses alarmes

1. Échec du DNS

Cette erreur signifie que le serveur WeChat n'a pas réussi à résoudre le DNS lors de l'envoi de messages aux développeurs. Si vous rencontrez cette alarme, veuillez confirmer :

a) Si l'URL et le nom de domaine renseignés sont corrects
b) si le nom de domaine a changé, par exemple expiré,  ; mise à jourAttendez.

Si les 2 problèmes ci-dessus ne sont pas rencontrés, veuillez contacter la plateforme publique WeChat.

2.Dns timeout

Actuellement, cette erreur ne se produira pas.

3. Délai de connexion

Cette erreur est que le serveur WeChat et le serveur du développeur n'ont pas réussi à se connecter dans les 3 secondes. Le message d'alarme fournira l'heure à laquelle le premier échec de connexion s'est produit et l'adresse IP de la connexion. Si vous rencontrez cette alarme, veuillez confirmer :

a) Si l'adresse IP est correcte.
b) Si la machine IP est surchargée et a trop de connexions.
c) Si un tiers fournit l'hébergement du serveur, y a-t-il une faute de la part du fournisseur d'hébergement ?
d) Si l'opérateur du réseau est défectueux.

4. Délai d'expiration de la demande

Le serveur WeChat envoie des messages ou des événements au serveur du développeur, mais le développeur ne revient pas dans les 5 secondes. Lorsque la demande expire, le message d'alarme indique l'heure à laquelle le délai d'attente de la demande s'est produit pour la première fois, l'adresse IP du développeur et le type de message. Développeurs, veuillez confirmer :

a) Si l'IP est erronée
b) Si l'IP reçoit la demande du type de message donné par le message d'alarme
c) Si la demande est traitée Le temps est trop long

5. Échec de réponse

Le développeur ne répond pas au message selon le format du message de réponse dans le wiki, ou une erreur réseau se produit. , une alarme sera émise en cas d'échec de la réponse et l'alarme sera signalée. Le message indiquera l'heure à laquelle la réponse à la demande a échoué pour la première fois, l'adresse IP du développeur, le type de message et le contenu du message de réponse. demandé de confirmer :

a) Si l'adresse IP est correcte
b) Si une erreur réseau s'est produite avec l'IP
c) Si la logique de traitement métier n'a pas répondu au message dans conformément aux spécifications du wiki, ou entré dans une logique anormale.

6.MarkFail (blocage automatique)

L'arrière-plan de WeChat comptera le nombre d'échecs des développeurs en temps réel. Lorsqu'un grand nombre d'échecs se produisent lors de l'envoi de messages aux développeurs, le serveur WeChat bloque automatiquement le développeur, cesse d'envoyer des messages dans un délai d'une minute et envoie une alarme au groupe WeChat. Cette alarme est l'alarme de niveau le plus élevé. Lorsque les développeurs reçoivent cette alarme, veuillez gérer l'échec en arrière-plan dès que possible et restaurer les services. En fait, avant de recevoir cette alarme, les développeurs recevront inévitablement des alarmes telles que le délai d'attente de connexion, le délai d'expiration de la demande ou l'échec de la réponse. Les développeurs doivent résoudre ces défauts immédiatement pour éviter d'être bloqués par le serveur WeChat et d'affecter sérieusement les services des comptes publics !

7. L'envoi du composant_verify_ticket a expiré& 8. L'envoi du message du composant a expiré& 9. L'envoi du message du composant a expiré& 10. L'envoi du message du composant a échoué

Les 4 alarmes ci-dessus ne seront signalées que par les développeurs de plates-formes tierces. avec les comptes publics Reçu, les autres développeurs de comptes publics n'ont pas besoin d'y prêter attention. Étant donné que la plate-forme tierce de compte public propose davantage de comptes publics, la qualité de service de la plate-forme tierce de compte public nécessite des exigences et des alarmes plus strictes, de sorte que ces quatre événements spéciaux sont signalés séparément. La méthode spécifique de recherche de problèmes est la même que celle des points 4 et 5, je n'entrerai donc pas dans les détails ici. Pour une application spécifique et la mise en œuvre du développement de la plateforme de compte public tierce, veuillez vous rendre sur WeChat Open Platform (open.weixin.qq.com)

FAQ

1 . Comment résoudre les problèmes de panne DNS ?

1. Testez par ping le nom de domaine dans l'URL configurée sur votre MP pour confirmer si vous pouvez obtenir la bonne IP. S'il ne peut pas être obtenu ou s'il est erroné, veuillez vérifier la configuration sur le système de gestion de votre hébergeur de nom de domaine.
2. Si l'adresse IP correcte peut être obtenue en 1, mais qu'il y a une alarme d'échec DNS, veuillez utiliser le serveur DNS 182.254.116.116 pour tester et vérifier à nouveau. Linux : recherchez le nom de domaine @182.254.116.116 ; Windows modifie l'adresse du serveur DNS dans la configuration réseau, puis pingez le nom de domaine. Si l'adresse IP obtenue est incorrecte ou ne peut pas être obtenue, veuillez contacter l'équipe WeChat.

2. Comment résoudre le problème de délai de connexion ?

1. Vérifiez s'il y a un problème avec l'environnement réseau.
(1) Utilisez l'interface de la plateforme publique pour obtenir l'adresse IP du serveur de rappel WeChat, api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN,
(2) Dans votre service Exécutez un test ping pour vérifier la qualité du réseau de votre serveur au serveur de rappel WeChat. Si vous rencontrez des problèmes de réseau, veuillez contacter votre fournisseur de serveur pour les résoudre.

2. Vérifiez le nombre de connexions au serveur de couche d'accès, la charge, la configuration nginx et le nombre de connexions autorisées. Vérifiez le journal des erreurs nginx pour voir s'il existe un journal d'erreurs « Connexion réinitialisée par un homologue » ou « Connexion expirée ». Si tel est le cas, cela indique que le nombre de connexions nginx est trop élevé et surchargé.
3. Il est recommandé de créer un outil de test pour effectuer des vérifications du rythme cardiaque sur le système et effectuer une surveillance et des alarmes en temps réel de la charge du système, du nombre de connexions, du nombre de processus et du temps de traitement.
Pour la configuration de nginx, voici les documents officiels et un simple lien d'introduction à la configuration, j'espère que cela sera utile : nginx.org/en/docs/, en se concentrant sur la configuration du numéro de connexion, la configuration des journaux, etc. Quelques références de configuration importantes de nginx sont les suivantes :

worker_processes  16;          //CPU核数
error_log  logs/error.log  info;   //错误日志log
worker_rlimit_nofile 102400;     //打开最大句柄数
events {
    worker_connections  102400;   //允许最大连接数
}
//请求日志记录,关键字段:request_time-请求总时间,upstream_response_time后端处理时 间
log_format  main  '$remote_addr  - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$host"  "$cookie_ssl_edition" '
                 '"$upstream_addr"   "$upstream_status"  "$request_time"  '
                 '"$upstream_response_time" ';
   access_log  logs/access.log  main;

3. Comment résoudre le problème d'expiration du délai de demande ?

Chaque module doit avoir un journal complet, qui permet de trouver les informations chronophages de chaque demande dans chaque module. Grâce à l'alarme WeChat fournissant des informations, il est facile de localiser quel serveur a le problème. Les raisons courantes sont :

1) La charge de la machine est trop élevée, ce qui augmente la consommation de temps
2) Exception de traitement de la machine, perte de message
3) Exception de machine, pour l'exception de traitement de la machine, il est recommandé de le faire dès que possible. Corrigez les bugs. En cas d'anomalies de la machine, veuillez bloquer la machine problématique dès que possible. La charge sur la machine est ici trop élevée, proposez simplement une solution réalisable. Option 1 : optimiser les performances et augmenter la capacité. Vérifiez la charge (cpu, mémoire, io, réseau, voir l'annexe pour plus de détails) et adoptez différentes méthodes d'optimisation en fonction des goulots d'étranglement spécifiques aux performances. Option 2 : traitement asynchrone. Si le message envoyé par le serveur WeChat ne peut pas être traité en temps réel, le message peut être stocké en premier et le succès peut d'abord être renvoyé au serveur WeChat. Le message peut être traité plus tard en arrière-plan si vous devez répondre. le message utilisateur, vous pouvez appeler l'API de l'interface Message du service client Répondre au message utilisateur.

4. Comment résoudre le problème de stockage et d'utilisation du access_token ?

Les tiers signalent souvent que access_token provoque une interruption de service. Lors du dépannage du problème sur la plate-forme publique, nous avons constaté que la plupart des tiers actualisent frénétiquement access_token, ce qui fait que access_token dépasse la limite de fréquence de l'interface et devient invalide. Voici une solution de stockage et d’utilisation access_token plus simple.

1) Le serveur de contrôle central appelle régulièrement l'API WeChat (1 heure est recommandée), actualise le access_token et stocke le nouveau access_token dans mysql (ou autre stockage),
2) D'autres serveurs de travail obtiennent le access_token de MySQL (ou d'un autre stockage) à chaque fois qu'ils appellent l'API WeChat et peuvent le mettre en cache en mémoire pendant un certain temps (1 minute est recommandée).

La plateforme publique veillera à ce qu'après l'actualisation du access_token, l'ancien access_token puisse toujours être utilisé dans les 5 minutes pour garantir que le tiers ne manquera pas d'appeler l'API WeChat lors de la mise à jour le jeton d'accès.

【Recommandations associées】

1.

Recommandation spéciale : Téléchargez la version V0.1 de "php Programmer Toolbox" 2.

Téléchargement du code source de la plateforme de compte public WeChat

3

Téléchargement du code source de vote WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn