開發(fā)者中心->接口報警),請開發(fā)者積極主動關(guān)注報警,即時解決故障,提高微信公眾號的服務(wù)質(zhì)量。" />

国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 微信小程序 微信開發(fā) 微信開發(fā)之報警排查

微信開發(fā)之報警排查

May 16, 2017 am 11:07 AM

概要說明

微信公眾平臺已對外開放接口報警,當微信服務(wù)器向開發(fā)者推送消息失敗次數(shù)達到預(yù)定閾值時,會將報警消息發(fā)送到指定微信報警群中(設(shè)置方式:公眾平臺->開發(fā)者中心->接口報警),請開發(fā)者積極主動關(guān)注報警,即時解決故障,提高微信公眾號的服務(wù)質(zhì)量。

為了更好地根據(jù)報警信息尾部的實例(提供了openid及時間戳stamp)進行問題排查,開發(fā)者需要在接入層、邏輯層等每一個層級都加上包含關(guān)鍵信息的詳細日志,以利于快速定位問題。

報警目前有2類:

1.通用報警,所有開發(fā)者都需要關(guān)注。

1.png

2.公眾號第三方平臺報警,只有在微信開放平臺(open.weixin.qq.com)上申請成為公眾號第三方平臺的開發(fā)者,才需要關(guān)注此報警。

1.png

下面對具體的報警做示例以及排查指引說明。

報警內(nèi)容說明

報警內(nèi)容描述:

a)appid:公眾號appid
b)昵稱: 公眾號昵稱
c)時間:所有報警,都會提供首次發(fā)生異常的時間。(如首次發(fā)生超時的時間,首次發(fā)生回應(yīng)失敗的時間)
d)內(nèi)容:錯誤的具體描述
e)次數(shù):發(fā)生失敗的次數(shù)
f)錯誤樣例:錯誤樣例里注明了一些幫助查找問題的信息。如:首次超時開發(fā)者的IP和推送消息類型。如果是回應(yīng)失敗,錯誤樣例還會注明首次回應(yīng)失敗時開發(fā)者的回包。

一般情況下,通過報警提供的IP,時間,消息類型,能夠比較快速的定位到第三方發(fā)生問題的原因。

報警示例1:超時報警

Appid: wxxxxxx
昵稱: WxNickName
時間: 2014-12-01 20:12:00
內(nèi)容: 微信服務(wù)器向公眾號推送消息或事件后,開發(fā)者5秒內(nèi)沒有返回
次數(shù): 5分鐘 1272次
錯誤樣例: [IP=203.205.140.29][Event=UnSubscribe]

該報警表示:微信服務(wù)器向開發(fā)者推送取消關(guān)注事件時,開發(fā)者沒有在5秒內(nèi)返回結(jié)果。在2014-12-01 20:12:00-2014-12-01 20:17:00這5分鐘內(nèi)發(fā)生了1272次。其中這5分鐘內(nèi)第一次發(fā)生超時的時間是:2014-12-01 20:12:00, 開發(fā)者的IP是:203.205.140.29,事件類型是取消關(guān)注事件。

報警示例2:回應(yīng)失敗

Appid: wxxxx
昵稱: WxNickName
時間: 2014-12-01 20:12:00
內(nèi)容: 微信服務(wù)器向公眾號推送消息或事件后,得到的回應(yīng)不合法
次數(shù): 5分鐘 1320次
錯誤樣例: [Event=Click] [ip=58.248.9.218][response_length=10][response_content=Error 500:]

該報警表示:微信服務(wù)器向開發(fā)者推送自定義菜單點擊事件時,開發(fā)者的返回結(jié)果不合法。在2014-12-01 20:12:00-2014-12-01 20:17:00這5分鐘內(nèi)發(fā)生了1320次。其中這5分鐘內(nèi)第一次發(fā)生回應(yīng)失敗的時間是:2014-12-01 20:12:00, 開發(fā)者的IP是:58.248.9.218,事件類型是點擊菜單事件,第三方返回的內(nèi)容長度為10個字節(jié),內(nèi)容為“Error 500:”。

報警示例3:連接超時

Appid: wxxxx
昵稱: WxNickName
時間: 2015-02-04 20:13:09
內(nèi)容: 微信服務(wù)器連接公眾號開發(fā)者服務(wù)器時發(fā)生超時,超時時間為5秒
次數(shù): 5分鐘 7289次
錯誤樣例: [IP=180.150.190.135][Msg=Text]

該報警表示:微信服務(wù)器向開發(fā)者推送粉絲發(fā)來的文本消息時,無法連接到開發(fā)者填寫的服務(wù)器地址。在2015-02-04 20:13:09-2015-02-04 20:18:00這5分鐘內(nèi)發(fā)生了7289次,這5分鐘內(nèi)第一次發(fā)生連接超時的時間是:2015-02-04 20:13:09, 開發(fā)者的IP是:180.150.190.135,事件類型是用戶推送的消息。

各類報警的排查方法

1.DNS失敗

該錯誤為微信服務(wù)器在推送消息給開發(fā)者時,解析dns失敗。如遇到此報警,請開發(fā)者確認:

a)填寫的url,域名是否有誤;
b) 域名是否發(fā)生變化,如過期,更新等。

如果不是以上2個問題,請聯(lián)系微信公眾平臺。

2.Dns超時

目前不會有此錯誤。

3.連接超時

該錯誤是微信服務(wù)器和開發(fā)者服務(wù)器3S內(nèi)未連接成功。報警消息會提供出首次發(fā)生連接失敗的時間和連接的IP。如遇此報警,請開發(fā)者確認:

a)該IP是否有誤。
b)該IP機器是否過載,連接過多。
c)如果是第三方提供服務(wù)器托管,托管商是否有故障。
d)網(wǎng)絡(luò)運營商是否有故障。

4.請求超時

微信服務(wù)器向開發(fā)者服務(wù)器推送消息或事件,開發(fā)者5秒內(nèi)沒有返回。請求超時時,報警消息會提供第一次出現(xiàn)請求超時的時間,開發(fā)者IP和消息類型。請開發(fā)者確認:

a)該IP是否有誤
b)該IP是否接收到報警消息給出的該消息類型的請求
c)該請求是否處理時間過長

5.回應(yīng)失敗

開發(fā)者沒有按照wiki中的回復(fù)消息格式進行回復(fù)消息,或者發(fā)生網(wǎng)絡(luò)錯誤,會報警回應(yīng)失敗,報警消息會提供第一次出現(xiàn)請求回應(yīng)失敗的時間,開發(fā)者的IP,消息類型以及回應(yīng)的消息內(nèi)容,請開發(fā)者確認:

a)該IP是否有誤
b)該IP是否發(fā)生網(wǎng)絡(luò)錯誤
c)該業(yè)務(wù)處理邏輯是否沒有按照wiki規(guī)范回復(fù)消息,或是進入了異常邏輯。

6.MarkFail(自動屏蔽)

微信后臺會實時統(tǒng)計開發(fā)者的失敗次數(shù)。在推送消息給開發(fā)者發(fā)生大量失敗時,微信服務(wù)器會自動屏蔽開發(fā)者,1分鐘內(nèi)不再推送任何消息,并會發(fā)送報警到微信群。此報警是級別最高的報警,開發(fā)者在收到此報警時請盡快處理后臺故障,恢復(fù)服務(wù)。事實上,開發(fā)者在收到此報警前,必然會收到連接超時,請求超時或回應(yīng)失敗等報警,需要開發(fā)者即時去解決這些故障,避免被微信服務(wù)器屏蔽,嚴重影響公眾號服務(wù)!

7.推送component_verify_ticket超時 & 8.推送component_verify_ticket失敗 & 9.推送組件消息超時 & 10.推送組件消息失敗

以上4個報警只有公眾號第三方平臺開發(fā)者會收到,其他公眾號開發(fā)者無需關(guān)注。由于公眾號第三方平臺承載了更多的公眾號,所以公眾號第三方平臺的服務(wù)質(zhì)量需要更嚴格要求和報警,所以把這4個特殊的事件單獨報警。具體的問題查找方式與4,5是一樣的,這里不在贅述。關(guān)于公眾號第三方平臺的具體申請與開發(fā)實現(xiàn),請前往微信開放平臺(open.weixin.qq.com)

常見問題

1.如何排查DNS失敗的問題?

1.Ping測試你們MP上配置的url里的域名,確認是否能夠得到正確的IP。如不能得到或者錯誤,請到你們的域名托管商管理系統(tǒng)上檢查配置。
2.如1能夠得到正確的IP,又有DNS失敗的報警;請使用DNS服務(wù)器182.254.116.116 ? ? ? ? ? ? 來再測試驗證。Linux?: ? dig @182.254.116.116 域名;windows 修改網(wǎng)絡(luò)配置里的DNS服務(wù)器地址,然后再ping 域名。如果得到的IP不正確或者得不到,請聯(lián)系微信團隊。

2.如何解決連接超時問題?

1.查看是否網(wǎng)絡(luò)環(huán)境問題。
? (1)使用公眾平臺接口,獲取到微信回調(diào)服務(wù)器的IP,api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN,
? (2)在你們的服務(wù)上ping 測試,檢查你們服務(wù)器到微信回調(diào)用服務(wù)器的網(wǎng)絡(luò)質(zhì)量情況。如有網(wǎng)絡(luò)問題,請聯(lián)系你們的服務(wù)器提供商解決。

2.查看接入層服務(wù)器連接數(shù),負載,nginx的配置,允許的連接個數(shù)。查看nginx錯誤日志是否有“Connection reset by peer”或“Connection timed out”錯誤日志,如有說明nginx連接數(shù)過超負載。
3.建議搭建測試工具,對系統(tǒng)進行心跳檢查,對系統(tǒng)負載,連接數(shù),處理數(shù),處理耗時進行實時監(jiān)控報警。
對于nginx配置,這里提供官方文檔和一篇簡單配置介紹鏈接,希望有幫助: nginx.org/en/docs/,重點關(guān)注連接數(shù)配置,日志配置等。nginx的一些重要配置參考例子如下:

worker_processes  16;          //CPU核數(shù)
error_log  logs/error.log  info;   //錯誤日志log
worker_rlimit_nofile 102400;     //打開最大句柄數(shù)
events {
    worker_connections  102400;   //允許最大連接數(shù)
}
//請求日志記錄,關(guān)鍵字段: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.如何解決請求超時問題?

每個模塊都需要有完整的日志,能夠查出每個請求在每個模塊的耗時信息,配合微信報警提供信息,能夠很容易的定位到是哪個服務(wù)器出問題。常見的原因是:

1)機器負載太高,耗時增加
2)機器處理異常,消息丟失
3)機器異常,對于機器處理異常,建議盡快修復(fù)bug,對于機器異常,請盡快屏蔽有問題的機器。這里對機器負載太高,簡單提供可行的解決方案。方案一:優(yōu)化性能,擴容。檢查負載情況(cpu,內(nèi)存,io,網(wǎng)絡(luò),詳見附錄),根據(jù)具體性能瓶頸的不同,采取不同的優(yōu)化方式。方案二:異步處理。如果微信服務(wù)器推送的消息來不及實時處理,可將消息先存儲,先返回success給微信服務(wù)器,后臺可后續(xù)再處理消息,如果需要回復(fù)用戶消息,可通過調(diào)用客服消息接口API再回復(fù)用戶消息。

4.如何解決access_token存儲和使用問題?

經(jīng)常有第三方反饋access_token造成服務(wù)中斷的問題,公眾平臺排查問題發(fā)現(xiàn),大部分第三方都在瘋狂刷新access_token,使得access_token超出接口頻率限制而失效。 這里提供一個較為簡單的access_token 存儲和使用方案。

1)中控服務(wù)器定時(建議1小時)調(diào)用微信api,刷新access_token,將新的access_token 存入mysql(或其他存儲),
2)其他工作服務(wù)器每次調(diào)用微信api時從mysql(或其他存儲)獲取access_token,并可在內(nèi)存緩存一段時間(建議1分鐘)。

公眾平臺會保證在access_token刷新后,舊的access_token在5分鐘內(nèi)仍能使用,以確保第三方在更新access_token時不會發(fā)生第三方調(diào)用微信api的失敗。

【相關(guān)推薦】

1. 特別推薦“php程序員工具箱”V0.1版本下載

2. 微信公眾號平臺源碼下載

3. 微信投票源碼下載

以上是微信開發(fā)之報警排查的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
PHP微信開發(fā):如何實現(xiàn)消息加密解密 PHP微信開發(fā):如何實現(xiàn)消息加密解密 May 13, 2023 am 11:40 AM

PHP是一種開源的腳本語言,廣泛應(yīng)用于Web開發(fā)和服務(wù)器端編程,尤其在微信開發(fā)中得到了廣泛的應(yīng)用。如今,越來越多的企業(yè)和開發(fā)者開始使用PHP進行微信開發(fā),因為它成為了一款真正的易學(xué)易用的開發(fā)語言。在微信開發(fā)中,消息的加密和解密是一個非常重要的問題,因為它們涉及到數(shù)據(jù)的安全性。對于沒有加密和解密方式的消息,黑客可以輕松獲取到其中的數(shù)據(jù),對用戶造成威脅

PHP微信開發(fā):如何實現(xiàn)投票功能 PHP微信開發(fā):如何實現(xiàn)投票功能 May 14, 2023 am 11:21 AM

在微信公眾號開發(fā)中,投票功能經(jīng)常被運用。投票功能是讓用戶快速參與互動的好方式,也是舉辦活動和調(diào)查意見的重要工具。本文將為您介紹如何使用PHP實現(xiàn)微信投票功能。獲取微信公眾號授權(quán)首先,你需要獲取微信公眾號的授權(quán)。在微信公眾平臺上,你需要配置微信公眾號的api地址、官方賬號和公眾號對應(yīng)的token。在我們使用PHP語言開發(fā)的過程中,我們需要使用微信官方提供的PH

用PHP開發(fā)微信群發(fā)工具 用PHP開發(fā)微信群發(fā)工具 May 13, 2023 pm 05:00 PM

隨著微信的普及,越來越多的企業(yè)開始將其作為營銷工具。而微信群發(fā)功能,則是企業(yè)進行微信營銷的重要手段之一。但是,如果只依靠手動發(fā)送,對于營銷人員來說是一件極為費時費力的工作。所以,開發(fā)一款微信群發(fā)工具就顯得尤為重要。本文將介紹如何使用PHP開發(fā)微信群發(fā)工具。一、準備工作開發(fā)微信群發(fā)工具,我們需要掌握以下幾個技術(shù)點:PHP基礎(chǔ)知識微信公眾平臺開發(fā)開發(fā)工具:Sub

PHP微信開發(fā):如何實現(xiàn)客服聊天窗口管理 PHP微信開發(fā):如何實現(xiàn)客服聊天窗口管理 May 13, 2023 pm 05:51 PM

微信是目前全球用戶規(guī)模最大的社交平臺之一,隨著移動互聯(lián)網(wǎng)的普及,越來越多的企業(yè)開始意識到微信營銷的重要性。在進行微信營銷時,客服服務(wù)是至關(guān)重要的一環(huán)。為了更好地管理客服聊天窗口,我們可以借助PHP語言進行微信開發(fā)。一、PHP微信開發(fā)簡介PHP是一種開源的服務(wù)器端腳本語言,廣泛運用于Web開發(fā)領(lǐng)域。結(jié)合微信公眾平臺提供的開發(fā)接口,我們可以使用PHP語言進行微信

PHP微信開發(fā):如何實現(xiàn)用戶標簽管理 PHP微信開發(fā):如何實現(xiàn)用戶標簽管理 May 13, 2023 pm 04:31 PM

在微信公眾號開發(fā)中,用戶標簽管理是一個非常重要的功能,可以讓開發(fā)者更好地了解和管理自己的用戶。本篇文章將介紹如何使用PHP實現(xiàn)微信用戶標簽管理功能。一、獲取微信用戶openid在使用微信用戶標簽管理功能之前,我們首先需要獲取用戶的openid。在微信公眾號開發(fā)中,通過用戶授權(quán)的方式獲取openid是比較常見的做法。在用戶授權(quán)完成后,我們可以通過以下代碼獲取用

PHP微信開發(fā):如何實現(xiàn)群發(fā)消息發(fā)送記錄 PHP微信開發(fā):如何實現(xiàn)群發(fā)消息發(fā)送記錄 May 13, 2023 pm 04:31 PM

隨著微信成為了人們生活中越來越重要的一個通訊工具,其敏捷的消息傳遞功能迅速受到廣大企業(yè)和個人的青睞。對于企業(yè)而言,將微信發(fā)展為一個營銷平臺已經(jīng)成為趨勢,而微信開發(fā)的重要性也逐漸凸顯。在其中,群發(fā)功能更是被廣泛使用,那么,作為PHP程序員,如何實現(xiàn)群發(fā)消息發(fā)送記錄呢?下面將為大家簡單介紹一下。1.了解微信公眾號相關(guān)開發(fā)知識在了解如何實現(xiàn)群發(fā)消息發(fā)送記錄之前,我

使用PHP實現(xiàn)微信公眾號開發(fā)的步驟 使用PHP實現(xiàn)微信公眾號開發(fā)的步驟 Jun 27, 2023 pm 12:26 PM

如何使用PHP實現(xiàn)微信公眾號開發(fā)微信公眾號已經(jīng)成為了很多企業(yè)推廣和互動的重要渠道,而PHP作為一種常用的Web語言,也可以用來進行微信公眾號的開發(fā)。本文將介紹一下使用PHP實現(xiàn)微信公眾號開發(fā)的具體步驟。第一步:獲取微信公眾號的開發(fā)者賬號在開始微信公眾號開發(fā)之前,需要先去申請一個微信公眾號的開發(fā)者賬號。具體的注冊流程可以參見微信公眾平臺的官方網(wǎng)

如何使用PHP進行微信開發(fā)? 如何使用PHP進行微信開發(fā)? May 21, 2023 am 08:37 AM

隨著互聯(lián)網(wǎng)和移動智能設(shè)備的發(fā)展,微信成為了社交和營銷領(lǐng)域不可或缺的一部分。在這個越來越數(shù)字化的時代,如何使用PHP進行微信開發(fā)已經(jīng)成為了很多開發(fā)者的關(guān)注點。本文主要介紹如何使用PHP進行微信開發(fā)的相關(guān)知識點,以及其中的一些技巧和注意事項。一、開發(fā)環(huán)境準備在進行微信開發(fā)之前,首先需要準備好相應(yīng)的開發(fā)環(huán)境。具體來說,需要安裝PHP的運行環(huán)境,以及微信公眾平臺提

See all articles