Panduan penyelesaian masalah penggera
Ringkasan penerangan
Platform awam WeChat telah membuka penggera antara muka kepada dunia luar Apabila bilangan percubaan gagal oleh pelayan WeChat untuk menolak mesej kepada pembangun mencapai ambang yang telah ditetapkan, mesej penggera akan menjadi. dihantar ke kumpulan penggera WeChat yang ditetapkan (kaedah tetapan: Platform awam->Pembangunan-Operasi dan Pusat Penyelenggaraan->Penggera antara muka), pembangun diminta untuk memberi perhatian secara aktif kepada penggera, menyelesaikan kerosakan dengan segera, dan meningkatkan kualiti perkhidmatan Akaun rasmi WeChat.
Untuk menyelesaikan masalah dengan lebih baik berdasarkan contoh pada penghujung maklumat penggera (openid dan cap masa disediakan), pembangun perlu menambah log terperinci yang mengandungi maklumat penting pada setiap peringkat seperti lapisan akses dan lapisan logik kepada Kondusif untuk cepat mencari masalah.
Pada masa ini terdapat 2 jenis penggera:
1, yang perlu diberi perhatian oleh semua pembangun.
2. Penggera platform pihak ketiga rasmi hanya pemaju yang memohon untuk menjadi platform pihak ketiga akaun awam pada platform terbuka WeChat (open.weixin.qq.com) perlu memberi perhatian kepada penggera ini.
Berikut ialah contoh penggera khusus dan garis panduan penyelesaian masalah.
Penerangan kandungan penggera
Perihalan kandungan penggera:
a)appid:公众号appid b)昵称: 公众号昵称 c)时间:所有报警,都会提供首次发生异常的时间。(如首次发生超时的时间,首次发生回应失败的时间) d)内容:错误的具体描述 e)次数:发生失败的次数 f)错误样例:错误样例里注明了一些帮助查找问题的信息。如:首次超时开发者的IP和推送消息类型。如果是回应失败,错误样例还会注明首次回应失败时开发者的回包。
Dalam keadaan biasa, melalui IP, masa dan jenis mesej yang disediakan oleh penggera, punca masalah pihak ketiga dapat dikesan dengan cepat.
Contoh penggera 1: Penggera tamat masa
Appid: wxxxxxx 昵称: WxNickName 时间: 2014-12-01 20:12:00 内容: 微信服务器向公众号推送消息或事件后,开发者5秒内没有返回 次数: 5分钟 1272次 错误样例: [IP=203.205.140.29][Event=UnSubscribe]
Penggera ini bermaksud: Apabila pelayan WeChat menolak acara berhenti mengikuti kepada pembangun, pembangun tidak mengembalikan keputusan dalam masa 5 saat. Ia berlaku 1272 kali dalam masa 5 minit dari 2014-12-01 20:12:00 hingga 2014-12-01 20:17:00. Tamat masa pertama berlaku dalam masa 5 minit ialah: 2014-12-01 20:12:00, IP pembangun ialah: 203.205.140.29, dan jenis acara ialah acara berhenti mengikuti.
Contoh penggera 2: Kegagalan respons
Appid: wxxxx 昵称: WxNickName 时间: 2014-12-01 20:12:00 内容: 微信服务器向公众号推送消息或事件后,得到的回应不合法 次数: 5分钟 1320次 错误样例: [Event=Click] [ip=58.248.9.218][response_length=10][response_content=Error 500:]
Penggera ini bermaksud: Apabila pelayan WeChat menolak acara klik menu tersuai kepada pembangun, hasil pemulangan pembangun adalah menyalahi undang-undang. Ia berlaku 1320 kali dalam masa 5 minit dari 2014-12-01 20:12:00 hingga 2014-12-01 20:17:00. Kali pertama respons gagal dalam 5 minit ini ialah: 01-12-2014 20:12:00, IP pembangun ialah: 58.248.9.218, jenis acara ialah acara menu klik dan panjang kandungan yang dikembalikan oleh pihak ketiga ialah 10 bait, kandungannya ialah "Ralat 500:".
Contoh penggera 3: Tamat masa sambungan
Appid: wxxxx 昵称: WxNickName 时间: 2015-02-04 20:13:09 内容: 微信服务器连接公众号开发者服务器时发生超时,超时时间为5秒 次数: 5分钟 7289次 错误样例: [IP=180.150.190.135][Msg=Text]
Penggera ini bermaksud: Apabila pelayan WeChat menolak mesej teks daripada peminat kepada pembangun, ia tidak boleh menyambung ke alamat pelayan yang diisi oleh pembangun. Ia berlaku 7289 kali dalam masa 5 minit dari 2015-02-04 20:13:09 hingga 2015-02-04 20:18:00 Kali pertama tamat masa sambungan berlaku dalam 5 minit ini ialah: 2015-02-04 20: 13:09, IP pembangun ialah: 180.150.190.135, dan jenis acara ialah mesej yang ditolak oleh pengguna.
Kaedah penyelesaian masalah untuk pelbagai penggera
1. Kegagalan DNS
Ralat ini bermakna pelayan WeChat gagal menyelesaikan DNS apabila menolak mesej kepada pembangun. Jika anda menemui penggera ini, sila sahkan dengan pembangun:
a)填写的url,域名是否有误; b) 域名是否发生变化,如过期,更新等。
Jika bukan 2 masalah di atas, sila hubungi platform awam WeChat.
2.Dns timeout
Pada masa ini tidak akan berlaku ralat sedemikian.
3. Tamat masa sambungan
Ralat ini ialah pelayan WeChat dan pelayan pembangun tidak berjaya menyambung dalam 3S. Mesej penggera akan memberikan masa apabila kegagalan sambungan pertama berlaku dan alamat IP sambungan. Jika anda menemui penggera ini, sila sahkan dengan pembangun:
a)该IP是否有误。 b)该IP机器是否过载,连接过多。 c)如果是第三方提供服务器托管,托管商是否有故障。 d)网络运营商是否有故障。
4 Permintaan tamat masa
Pelayan WeChat menolak mesej atau acara ke pelayan pembangun, dan pembangun tidak kembali dalam masa 5 saat. Apabila permintaan tamat, mesej penggera akan memberikan masa apabila tamat masa permintaan berlaku buat kali pertama, IP pembangun dan jenis mesej. Pembangun sila sahkan:
a)该IP是否有误 b)该IP是否接收到报警消息给出的该消息类型的请求 c)该请求是否处理时间过长
5 Kegagalan respons
Jika pembangun tidak membalas mesej mengikut format mesej balasan dalam wiki, atau ralat rangkaian berlaku, kegagalan tindak balas penggera akan dilaporkan berikan kegagalan respons permintaan pertama untuk masa ini, IP pembangun, jenis mesej dan kandungan mesej respons, sila sahkan dengan pembangun:
a)该IP是否有误 b)该IP是否发生网络错误 c)该业务处理逻辑是否没有按照wiki规范回复消息,或是进入了异常逻辑。
6 (penyekatan automatik)
Latar belakang WeChat akan mengira bilangan kegagalan pembangun. dalam masa nyata. Apabila sejumlah besar kegagalan berlaku dalam menolak mesej kepada pembangun, pelayan WeChat akan menyekat pembangun secara automatik, berhenti menolak sebarang mesej dalam masa 1 minit dan menghantar penggera kepada kumpulan WeChat. Penggera ini ialah penggera tahap tertinggi Apabila pembangun menerima penggera ini, sila kendalikan kegagalan latar belakang secepat mungkin dan pulihkan perkhidmatan. Malah, sebelum menerima penggera ini, pembangun pasti akan menerima penggera seperti tamat masa sambungan, tamat masa permintaan atau kegagalan tindak balas Pembangun perlu menyelesaikan masalah ini dengan segera untuk mengelak daripada disekat oleh pelayan WeChat dan menjejaskan perkhidmatan akaun awam secara serius.
7. Menolak component_verify_ticket tamat masa & 8. Menolak component_verify_ticket gagal & 9. Menolak mesej komponen tamat masa & 10. Menolak mesej komponen gagal
Hanya pembangun platform pihak ketiga bagi akaun awam akan menerima 4 penggera di atas, akaun awam lain pemaju Tidak perlu memberi perhatian. Memandangkan platform pihak ketiga akaun awam membawa lebih banyak akaun awam, kualiti perkhidmatan platform pihak ketiga akaun awam memerlukan keperluan dan penggera yang lebih ketat, jadi empat acara khas ini dilaporkan secara berasingan. Kaedah mencari masalah khusus adalah sama seperti 4 dan 5, jadi saya tidak akan menerangkan butiran di sini. Untuk pelaksanaan aplikasi dan pembangunan khusus bagi platform akaun awam pihak ketiga, sila pergi ke Platform Terbuka WeChat (open.weixin.qq.com)
Soalan Lazim
1. Bagaimana untuk menyelesaikan masalah kegagalan DNS?
1.Ping测试你们MP上配置的url里的域名,确认是否能够得到正确的IP。如不能得到或者错误,请到你们的域名托管商管理系统上检查配置。 2.如1能够得到正确的IP,又有DNS失败的报警;请使用DNS服务器182.254.116.116 来再测试验证。Linux : dig @182.254.116.116 域名;windows 修改网络配置里的DNS服务器地址,然后再ping 域名。如果得到的IP不正确或者得不到,请联系微信团队。
2. Bagaimana untuk menyelesaikan masalah tamat masa sambungan?
1.查看是否网络环境问题。 (1)使用公众平台接口,获取到微信回调服务器的IP,https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN, (2)在你们的服务上ping 测试,检查你们服务器到微信回调用服务器的网络质量情况。如有网络问题,请联系你们的服务器提供商解决。 2.查看接入层服务器连接数,负载,nginx的配置,允许的连接个数。查看nginx错误日志是否有“Connection reset by peer”或“Connection timed out”错误日志,如有说明nginx连接数过超负载。 3.建议搭建测试工具,对系统进行心跳检查,对系统负载,连接数,处理数,处理耗时进行实时监控报警。 对于nginx配置,这里提供官方文档和一篇简单配置介绍链接,希望有帮助: http://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. Bagaimana untuk menyelesaikan masalah tamat masa permintaan?
Setiap modul perlu mempunyai log yang lengkap, yang boleh mengetahui maklumat yang memakan masa setiap permintaan dalam setiap modul Dengan maklumat yang diberikan oleh penggera WeChat, adalah mudah untuk mencari pelayan yang mempunyai masalah. Sebab biasa ialah:
1)机器负载太高,耗时增加 2)机器处理异常,消息丢失 3)机器异常,对于机器处理异常,建议尽快修复bug,对于机器异常,请尽快屏蔽有问题的机器。这里对机器负载太高,简单提供可行的解决方案。方案一:优化性能,扩容。检查负载情况(cpu,内存,io,网络,详见附录),根据具体性能瓶颈的不同,采取不同的优化方式。方案二:异步处理。如果微信服务器推送的消息来不及实时处理,可将消息先存储,先返回success给微信服务器,后台可后续再处理消息,如果需要回复用户消息,可通过调用客服消息接口API再回复用户消息。
4 Bagaimana untuk menyelesaikan masalah penyimpanan dan penggunaan token akses?
Selalunya terdapat laporan daripada pihak ketiga bahawa access_token menyebabkan gangguan perkhidmatan Apabila menyelesaikan masalah pada platform awam, didapati bahawa kebanyakan pihak ketiga secara panik menyegarkan access_token, menyebabkan access_token melebihi had kekerapan antara muka dan menjadi tidak sah. Berikut ialah penyelesaian storan dan penggunaan access_token yang lebih mudah.
1)中控服务器定时(建议1小时)调用微信api,刷新access_token,将新的access_token 存入mysql(或其他存储), 2)其他工作服务器每次调用微信api时从mysql(或其他存储)获取access_token,并可在内存缓存一段时间(建议1分钟)。
Platform awam akan memastikan bahawa selepas access_token dimuat semula, access_token lama masih boleh digunakan dalam masa 5 minit untuk memastikan pihak ketiga tidak akan gagal menghubungi API WeChat semasa mengemas kini access_token.
Lampiran
Lampiran 1: Senarai acara mesej tolak WeChat dan format respons
Untuk butiran, sila lihat: Mesej tolak WeChat dan penerangan acara Lihat prestasi pelayan
Alat yang biasa digunakan
Berikut ialah pengenalan ringkas kepada alatan biasa untuk menyemak beban prestasi pelayan Sila rujuk penggunaan alat terperinci secara berasingan. 1. Periksa beban prestasi CPUa)masa hidup digunakan untuk memerhati beban keseluruhan pelayan merujuk kepada purata panjang giliran berjalan (1 minit, 5 minit, 15 minit lalu). Dalam keadaan biasa, ia perlu kurang daripada bilangan CPU . b)vmstatvmstat ialah singkatan Statistik Meomori Maya, yang boleh memantau memori maya, proses dan aktiviti CPU sistem pengendalian. Ia melakukan statistik pada keadaan keseluruhan sistem Ia biasanya diuji menggunakan perintah vmstat 5 5 (bermaksud data dijana setiap 5 saat, lima kali). Ringkasan data akan diperoleh yang menggambarkan keadaan sistem sebenar. c)atas Arahan teratas ialah salah satu alatan prestasi Unix/Linux yang paling popular. Pentadbir sistem boleh menjalankan arahan teratas untuk memantau proses dan prestasi Linux secara keseluruhan. 2. Periksa beban prestasi memori a)percumaArahan percuma di bawah Linux boleh digunakan untuk menyemak penggunaan memori sistem semasa Ia juga memaparkan baki memori fizikal dan memori swap dalam sistem sebagai Memori dikongsi dan penimbal yang digunakan oleh teras. 3. Lihat beban prestasi rangkaian b) netstat Netstat ialah arahan konsol dan alat yang sangat berguna untuk memantau rangkaian TCP/IP Ia boleh memaparkan jadual penghalaan, sambungan rangkaian sebenar dan setiap antara muka rangkaian Peranti maklumat status. Netstat digunakan untuk memaparkan data statistik yang berkaitan dengan protokol IP, TCP, UDP dan ICMP Ia biasanya digunakan untuk menyemak sambungan rangkaian setiap port mesin. c)sarsar (Laporan aktiviti sistem Pelapor Aktiviti Sistem) kini merupakan salah satu alat analisis prestasi sistem yang paling komprehensif di Linux Ia boleh melaporkan aktiviti sistem dari banyak aspek, termasuk: membaca dan menulis fail, penggunaan panggilan sistem, cakera I/O, kecekapan CPU, penggunaan memori, aktiviti proses dan aktiviti berkaitan IPC, dsb. Artikel ini terutamanya menggunakan sistem CentOS 6.3 x64 sebagai contoh untuk memperkenalkan arahan sar.4. Periksa beban prestasi cakera
a)iostat
Arahan iostat di bawah Linux boleh digunakan untuk melaporkan statistik unit pemprosesan pusat (CPU) dan input/output keseluruhan sistem, penyesuai, peranti tty, cakera dan Statistik CD-ROM. . Semak status Log permintaan, tail -f logs/access.log, lihat medan upstream_status.
200:表示正常; 502/503/504:表示处理慢,或者后端down机;再看upstream_response_time返回的时间是否真的较慢,有没有上百毫秒,或更高的,有则说明是后端服务有问题。 404:表示请求的路径不存在或不对,文件不在了。需要检查你配置在公众平台上的url路径是否正确; 服务器上的文件、程序是否存在。 403:表示无权限访问。 检查一下nginx.conf 是否有特殊的访问配置。 499: 则是客户端的问题,请联系微信团队。 此错误少见。