>  기사  >  위챗 애플릿  >  WeChat 개발을 위한 알람 문제 해결

WeChat 개발을 위한 알람 문제 해결

Y2J
Y2J원래의
2017-05-16 11:07:518219검색

요약 설명

WeChat 공개 플랫폼이 대중에게 공개되었습니다인터페이스WeChat 서버가 개발자에게 메시지를 푸시하려는 시도에 실패한 횟수가 미리 결정된 임계값에 도달하면 경보가 울립니다. 지정된 WeChat 알람으로 알람 메시지가 전송됩니다. 그룹(설정 방법: 공개 플랫폼 -> 개발자 센터 -> 인터페이스 알람)에서 개발자는 알람에 적극적으로 주의하고 결함을 즉시 해결하며 서비스 품질을 향상시켜야 합니다. 위챗 공식 계정.

알람 정보(openid 및 타임스탬프 스탬프 제공) 끝에 있는 예시를 기반으로 문제를 더 잘 해결하려면 개발자가 신속하게 도움을 주기 위해 주요 정보가 포함된 자세한 로그를 추가해야 합니다. 문제를 찾아보세요.

현재 두 가지 유형의 알람이 있습니다:

1. 모든 개발자가 주의해야 하는 일반 알람입니다.

WeChat 개발을 위한 알람 문제 해결

2. 공개 계정 제3자 플랫폼에서 경찰에 신고하는 경우, 위챗 오픈 플랫폼에서만 공개 계정 제3자 플랫폼 개발자 신청이 가능합니다. (open.weixin.qq.com) 그래야만 이 알람에 주의를 기울여야 합니다.

WeChat 개발을 위한 알람 문제 해결

다음은 특정 알람 및 문제 해결 지침의 예입니다.

알람 내용 설명

알람 내용 설명:

a)appid: 공식 계정 appid
b)nickname: 공식 계정 닉네임
c) 시간: 모든 알람은 이상이 처음 발생한 시간을 제공합니다. (첫 번째 타임아웃이 발생한 시간, 첫 번째 응답 실패가 발생한 시간 등)
d) 내용: 오류에 대한 구체적인 설명
e) 횟수: 실패한 횟수
f) 오류 샘플: 오류 샘플에서는 문제를 해결하는 데 도움이 되는 몇 가지 정보를 기록합니다. 예: 처음으로 시간 초과된 개발자의 IP 및 푸시 메시지 유형. 응답이 실패하면 오류 예시에는 첫 번째 응답이 실패했을 때의 개발자 응답도 표시됩니다.

일반적으로 알람이 제공하는 IP, 시간, 메시지 종류를 통해 제3자 문제의 원인을 빠르게 찾아낼 수 있습니다.

알람 예 1: 시간 초과 알람

Appid: wxxxxxx
닉네임: WxNickName
시간: 2014-12-01 20:12:00
내용: 위챗 서버가 공식 계정에 메시지나 이벤트를 푸시한 후 개발자가 5초 이내에
횟수를 반환하지 않았습니다. 5분에 1272회
오류 예: [IP=203.205. 140.29][Event= UnSubscribe]

이 알람의 의미: WeChat 서버가 언팔로우 이벤트를 개발자에게 푸시했을 때 개발자가 5초 이내에 결과를 반환하지 않았습니다. 2014-12-01 20:12:00부터 2014-12-01 20:17:00까지 5분 동안 1272번 일어났습니다. 5분 이내에 발생한 첫 번째 타임아웃은 2014-12-01 20:12:00, 개발자 IP는 203.205.140.29, 이벤트 유형은 언팔로우 이벤트였습니다.

알람 예시 2: 응답 실패

Appid: wxxxx
닉네임: WxNickName
시간: 2014-12-01 20:12:00
내용: 위챗 서버가 공식 계정에 메시지나 이벤트를 푸시한 후 잘못된 응답을 받았습니다
회수: 5분 동안 1320회
오류 예시: [이벤트=클릭] [ip=58.248. 9.218][response_length= 10][response_content=오류 500:]

이 경보의 의미는 다음과 같습니다. WeChat 서버가 사용자 정의 메뉴 클릭 이벤트를 푸시할 때 개발자, 개발자의 반환된 결과가 불법입니다. 2014-12-01 20:12:00부터 2014-12-01 20:17:00까지 5분 동안 1320번이나 일어났습니다. 이 5분 동안 처음 응답이 실패한 시간은 2014-12-01 20:12:00, 개발자 IP는 58.248.9.218, 이벤트 유형은 클릭 메뉴 이벤트, 반환된 콘텐츠의 길이는 다음과 같습니다. 제3자가 10바이트이면 내용은 "오류 500:"입니다.

알람 예시 3: 연결 시간 초과

Appid: wxxxx
닉네임: WxNickName
시간: 2015-02-04 20:13:09
내용: 위챗 서버가 공용 계정 개발자 서버에 연결되는 동안 타임아웃이 발생했습니다. 타임아웃 기간은 5초입니다.
회수: 5분 동안 7289번
오류 예시: [IP=180.150.190.135][ Msg=Text]

이 알람의 의미: WeChat 서버가 팬의 문자 메시지를 개발자에게 푸시할 때 개발자가 입력한 서버 주소에 연결할 수 없습니다. 2015-02-04 20:13:09부터 2015-02-04 20:18:00까지 5분 동안 7289회 발생했습니다. 이 5분 동안 처음으로 연결 시간 초과가 발생한 것은 2015-02-04 20입니다. 13:09, 개발자 IP는 180.150.190.135이고, 이벤트 유형은 사용자가 푸시한 메시지입니다.

각종 알람 문제 해결 방법

1. DNS 오류

이 오류는 개발자에게 메시지를 푸시할 때 WeChat 서버가 DNS를 확인하지 못했음을 의미합니다. 이 알람이 발생하면 다음을 확인하세요.

a) 입력한 URL과 도메인 이름이 올바른지
b) 도메인 이름이 만료 등으로 변경되었는지 업데이트잠깐.

위의 두 가지 문제가 발생하지 않으면 WeChat 공개 플랫폼에 문의하세요.

2.Dns timeout

현재 이 오류는 발생하지 않습니다.

3. 연결 시간 초과

위챗 서버와 개발자 서버가 3초 이내에 성공적으로 연결되지 못한 경우 발생하는 오류입니다. 경보 메시지는 첫 번째 연결 실패가 발생한 시간과 연결의 IP 주소를 제공합니다. 이 알람이 발생하면

a) IP가 올바른지 확인하세요.
b) IP 시스템이 과부하되어 연결이 너무 많은지 여부.
c) 제3자가 서버 호스팅을 제공하는 경우 호스팅 제공업체에 잘못이 있나요?
d) 네트워크 사업자의 과실 여부.

4. 요청 시간 제한

WeChat 서버가 개발자 서버에 메시지나 이벤트를 푸시하지만 개발자가 5초 이내에 반환하지 않습니다. 요청 시간이 초과되면 처음으로 요청 시간 초과가 발생한 시간, 개발자 IP 및 메시지 유형을 알람 메시지에 제공합니다. 개발자께서는 다음을 확인하시기 바랍니다:

a) IP가 잘못된지 여부
b) 해당 IP가 알람 메시지에서 제공하는 메시지 유형의 요청을 수신하는지
c) 요청이 처리되는지 여부 시간이 너무 깁니다

5. 응답 실패

개발자가 위키의 응답 메시지 형식에 따라 메시지에 응답하지 않거나 네트워크 오류가 발생합니다. , 응답 실패에 대해 알람이 발생하고 알람이 보고됩니다. 메시지에는 처음으로 요청 응답이 실패한 시간, 개발자의 IP, 메시지 유형 및 응답 메시지 내용이 제공됩니다. 확인:

a) IP가 올바른지?
b) 해당 IP에 네트워크 오류가 발생했는지 여부
c) 비즈니스 처리 로직이 메시지에 따라 응답하지 않았는지 여부 위키 사양에 따르거나, 비정상적인 논리를 입력했습니다.

6.MarkFail(자동 차단)

WeChat 배경에서는 개발자의 실패 횟수를 실시간으로 계산합니다. 개발자에게 메시지를 푸시하는 데 많은 실패가 발생하면 WeChat 서버는 자동으로 개발자를 차단하고 1분 이내에 모든 메시지 푸시를 중지하며 WeChat 그룹에 알람을 보냅니다. 이 알람은 가장 높은 수준의 알람입니다. 개발자가 이 알람을 수신하면 가능한 한 빨리 백그라운드 오류를 처리하고 서비스를 복원하십시오. 실제로 이 알람을 받기 ​​전에 개발자는 필연적으로 연결 시간 초과, 요청 시간 초과 또는 응답 실패와 같은 알람을 받게 됩니다. 개발자는 WeChat 서버에 의해 차단되어 공개 계정 서비스에 심각한 영향을 미치지 않도록 이러한 오류를 즉시 해결해야 합니다!

7. 구성 요소 푸시 시간 초과& 8. 구성 요소 푸시 시간 초과& 10. 구성 요소 메시지 푸시 실패

위 4가지 경보는 타사 플랫폼 개발자만 보고합니다. 공개 계정을 받은 경우 다른 공개 계정 개발자는 주의를 기울일 필요가 없습니다. 공개 계정 제3자 플랫폼은 더 많은 공개 계정을 보유하므로 공개 계정 제3자 플랫폼의 서비스 품질에는 더 엄격한 요구 사항과 경보가 필요하므로 이 네 가지 특별 이벤트는 별도로 보고됩니다. 구체적인 문제 발견 방법은 4, 5와 동일하므로 여기서는 자세히 다루지 않겠습니다. 제3자 공개 계정 플랫폼의 구체적인 적용 및 개발 구현에 대해서는 WeChat 오픈 플랫폼(open.weixin.qq.com)을 참조하세요.

FAQ

1 . DNS 오류를 어떻게 해결합니까?

1. MP에 구성된 URL의 도메인 이름을 핑 테스트하여 올바른 IP를 얻을 수 있는지 확인합니다. 획득할 수 없거나 잘못된 경우 도메인 이름 호스팅 제공업체의 관리 시스템 구성을 확인하세요.
2. 1에서 올바른 IP를 얻을 수 있지만 DNS 실패 알람이 있는 경우 DNS 서버 182.254.116.116을 사용하여 다시 테스트하고 확인하십시오. Linux: @182.254.116.116 도메인 이름을 발굴하고 Windows는 네트워크 구성에서 DNS 서버 주소를 수정한 다음 도메인 이름을 ping합니다. 획득한 IP가 올바르지 않거나 획득할 수 없는 경우 WeChat 팀에 문의하세요.

2. 연결 시간 초과 문제를 해결하는 방법은 무엇입니까?

1. 네트워크 환경에 문제가 있는지 확인하세요.
(1) 공개 플랫폼 인터페이스를 사용하여 WeChat 콜백 서버 api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN의 IP를 얻습니다.
(2) 서비스 핑 테스트를 실행하여 서버에서 WeChat 콜백 서버까지의 네트워크 품질을 확인하세요. 네트워크 문제가 있는 경우 서버 제공업체에 문의하여 문제를 해결하세요.

2. 액세스 계층 서버 연결 수, 로드, nginx 구성 및 허용되는 연결 수를 확인합니다. nginx 오류 로그를 확인하여 "피어에 의한 연결 재설정" 또는 "연결 시간 초과" 오류 로그가 있는지 확인하세요. 그렇다면 nginx 연결 수가 너무 많아 과부하되었음을 나타냅니다.
3. 시스템의 하트비트 검사를 수행하고 시스템 부하, 연결 수, 프로세스 수 및 처리 시간을 실시간으로 모니터링하고 경고하는 테스트 도구를 구축하는 것이 좋습니다.
nginx 구성에 대한 공식 문서와 간단한 구성 소개 링크가 도움이 되길 바랍니다: nginx.org/en/docs/, 연결 번호 구성, 로그 구성 등에 중점을 둡니다. nginx의 몇 가지 중요한 구성 참조 예는 다음과 같습니다.

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. 요청 시간 초과 문제를 해결하는 방법은 무엇입니까?

각 모듈에는 각 모듈의 각 요청에 대해 시간이 많이 걸리는 정보를 확인할 수 있는 완전한 로그가 있어야 합니다. WeChat 알람에서 제공하는 정보를 사용하면 어떤 서버에 문제가 있는지 쉽게 찾을 수 있습니다. 일반적인 이유는 다음과 같습니다.

1) 기계 부하가 너무 높아 시간 소모가 증가합니다.
2) 기계 처리 예외, 메시지 손실
3) 기계 예외, 기계 처리 예외, 가능한 한 빨리 수행하는 것이 좋습니다. 버그를 수정하려면 가능한 한 빨리 문제가 있는 시스템을 차단하십시오. 여기 기계의 부하가 너무 높습니다. 실행 가능한 솔루션을 제공하기만 하면 됩니다. 옵션 1: 성능을 최적화하고 용량을 확장합니다. 부하(CPU, 메모리, IO, 네트워크, 자세한 내용은 부록 참조)를 확인하고 특정 성능 병목 현상에 따라 다양한 최적화 방법을 채택하십시오. 옵션 2: 비동기 처리. WeChat 서버에서 푸시한 메시지를 실시간으로 처리할 수 없는 경우 해당 메시지를 먼저 저장한 후 나중에 응답해야 하는 경우 메시지를 WeChat 서버에 먼저 처리할 수 있습니다. 사용자 메시지에 대해 고객 서비스 메시지 인터페이스 API를 호출할 수 있습니다.

4. access_token 저장 및 사용 문제는 어떻게 해결하나요?

제3자는 종종 access_token으로 인해 서비스 중단이 발생한다고 보고합니다. 공용 플랫폼에서 문제를 해결할 때 대부분의 제3자가 access_token을 미친 듯이 새로 고쳐서 access_token이 인터페이스 빈도 제한을 초과하고 유효하지 않게 되는 것을 발견했습니다. 다음은 더 간단한 access_token 저장 및 사용 솔루션입니다.

1) 중앙 관제 서버는 정기적으로 WeChat API를 호출하고(1시간 권장) access_token을 새로 고치고 새 access_token을 mysql(또는 기타 저장소)에 저장합니다.
2 ) 다른 작업자 서버는 WeChat API를 호출할 때마다 mysql(또는 다른 저장소)에서 access_token을 가져와 일정 시간 동안 메모리에 캐시할 수 있습니다(1분 권장).

공개 플랫폼은 access_token이 새로 고쳐진 후에도 5분 이내에 이전 access_token을 계속 사용할 수 있도록 보장하여 업데이트 시 제3자가 WeChat API 호출에 실패하지 않도록 보장합니다. access_token.

【관련 추천사항】

1.

특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드2.

WeChat 공개 계정 플랫폼 소스 코드 다운로드

3.

WeChat 투표 소스 코드 다운로드

위 내용은 WeChat 개발을 위한 알람 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.