主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
大纲描述
微信公众平台已对外开放接口报警。当微信服务器未能向开发者推送消息的次数达到预定阈值时,将向指定的微信报警群发送报警消息(设置模式:公众平台-》开发者中心-》界面报警),并要求开发者积极关注报警,立即解决故障,提高微信官方账号的服务质量。
为了更好地根据警报消息末尾的示例(提供了openid和时间戳stamp)对问题进行故障排除,开发人员需要在每个级别(如访问层和逻辑层)添加包含关键信息的详细日志,以便于快速定位问题。
目前有两种类型的警报:
1.一般报警,这是所有开发人员都需要注意的。
2.微信官方账号第三方平台报警。只有当您在微信开放平台(open.weixin.qq.com)上申请成为微信官方账号第三方平台的开发者时,才需要注意此警报。
以下是特定警报和故障排除说明的示例。
警报内容的描述
报警内容描述:
a)appid:微信官方账号appidb)昵称:微信官方账号昵称c)时间:所有报警都会提供第一次异常发生的时间。(例如,第一次发生超时的时间,以及第一次响应失败的时间)D)内容:错误的具体描述E)次数:失败的次数F)错误示例:错误示例中指出了一些有助于发现问题的信息。例如:第一超时开发者的IP和推送消息的类型。如果响应失败,错误示例还将在第一次响应失败时指示开发人员的包。
一般来说,通过报警人提供的IP、时间和消息类型,可以快速定位第三方的问题原因。
警报示例1:超时警报
Appid: wxxxxxx昵称:WxNickName时间:2014-12-01 20:12:00内容:微信服务器将消息或事件推送到微信官方账号后,开发者在5秒内未回的次数:5分钟内1272次。示例:【IP = 203.205.140.29】【事件=取消订阅】。
告警表示微信服务器向开发者推送取消关注事件时,开发者未在5秒内返回结果。在20: 17: 00的20: 12: 00-2014-12-01这五分钟内发生了1272次。其中,这五分钟内首次发生超时的时间为: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】【响应】
告警表示微信服务器向开发者推送自定义菜单点击事件时,开发者返回的结果不合法。在20: 17: 00的20: 12: 00-2014-12-01这五分钟内发生了1320次。其中5分钟内第一次响应失败的时间为:20:12:00 2014-12-01,开发者IP为58.248.9.218,事件类型为菜单点击事件,第三方返回的内容长度为10字节,内容为“错误500:“。
警报示例3:连接超时
Appid: wxxxx昵称:wx昵称时间:2015-02-04 20:13:09内容:微信服务器连接微信官方账号开发者服务器超时5秒。次数:5分钟,7289次错误。示例:【IP = 180 . 150 . 190 . 135】【Msg = Text】。
报警表示微信服务器向开发者推送粉丝发送的短信时,无法连接到开发者填写的服务器地址。2015-02-04 20:13:09-2015-02-04 20:18:00的五分钟内发生了7289次,这五分钟内第一次连接超时的时间是:2015-02-04 20:13:09,开发者的。
各类报警的调查方法
1.DNS失败
错误是微信服务器在向开发者推送消息时无法解析dns。如果您遇到此警报,请要求开发人员确认:
a)填写的url和域名是否不正确;b)域名是否发生了变化,如到期或更新。
如果不是以上两个问题,请联系微信公众平台。
2.Dns超时
目前不会出现这种错误。
3.连接超时
错误是微信服务器和开发者服务器在3S内没有连接成功。警报消息将提供第一次连接失败的时间和连接的IP。如果出现此警报,请要求开发商确认:
a)IP是否错误。b)IP机器是否过载和连接过多。c)如果服务器由第三方托管,托管提供商是否有故障。d)网络运营商是否有过错。
4.请求超时
微信服务器向开发者服务器推送消息或事件,但开发者未在5秒内返回。当请求超时时,警报消息将提供请求首次超时的时间、开发者IP和消息类型。请要求开发商确认:
a)IP是否错误b)IP是否收到了报警消息给出的该消息类型的请求c)请求的处理时间是否过长。
5.响应失败
如果开发人员未能按照wiki中的回复消息格式进行回复,或者出现网络错误,警报响应将失败。警报消息将提供请求响应第一次失败的时间、开发者的IP、消息类型和响应的消息内容。请要求开发商确认:
a)IP是否错误,b)IP是否存在网络错误,c)业务处理逻辑是否未能根据wiki规范回复消息,或进入异常逻辑。
6.自动屏蔽
微信后台会实时统计开发者的失败次数。当向开发者推送消息出现大量失败时,微信服务器将自动阻止开发者,停止推送任何消息1分钟,并向微信群发送警报。该警报是最高级别的警报。当开发人员收到此警报时,请尽快处理后台故障并恢复服务。事实上,在收到此警报之前,开发人员不可避免地会收到连接超时、请求超时或响应失败等警报,这需要开发人员立即解决这些故障,以避免被微信服务器阻止并严重影响微信官方账号服务!
7.推送组件_验证_票证超时&8。推送组件_验证_票证失败& 9。推送组件消息超时&10。推送组件消息失败。
以上四种报警只会在微信官方账号中被第三方平台开发者收到,其他微信官方账号开发者无需关注。由于微信官方账号中的第三方平台承载了更多的微信官方账号,因此微信官方账号中的第三方平台的服务质量需要更严格的要求和警报,因此这四个特殊事件被单独报告。具体的找题方法和4、5一样,这里就不赘述了。微信官方账号中第三方平台的具体应用和开发请前往微信开放平台(open.weixin.qq.com)。
常见问题
1.如何排除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.如何解决连接超时问题?
1.检查是否存在网络环境问题。(1)使用公共平台接口获取微信回拨服务器的IP,api.weixin.qq.com/cgi-bin/getcallbackip?.访问令牌=访问令牌,(2)ping您的服务以检查从您的服务器到微信回拨服务器的网络质量。如果您有网络问题,请联系您的服务器提供商解决这些问题。2.检查服务器连接数、负载、nginx配置和接入层中允许的连接数。检查nginx错误日志中是否有“连接被对等方重置”或“连接超时”错误日志。如果有的话,nginx连接数超载了。3.建议构建一个测试工具来检查系统的心跳,并实时监控系统负载、连接数、处理数和处理时间。对于nginx配置,这里有一个官方文档和一个简单的配置介绍链接,我希望对您有所帮助:nginx.org/en/docs/,侧重于连接数配置和日志配置。nginx配置的一些重要参考示例如下:
worker _ processes 16//CPU核心号error _ log logs/error . log info;//错误日志logworker _ rlimit _ nofile 102400//打开句子句柄事件的最大数量{ worker _ connections 102400//允许的最大连接数}//请求日志记录,关键字段:request_time-总请求时间,upstream_response_time后端处理时间log _ format main &;#39;$ remote _ addr -$ remote _ user【$ time _ local】& quot;$request"& amp#39;& amp#39;$ status $ body _ bytes _ sent & quot$ http _ referer & quot& amp#39;& amp#39;"$ http _用户代理& quot"$ http _ x _ forwarded _ for & quot"$ host & quot"$ cookie _ ssl _ edition & quot& amp#39;& amp#39;"$上游地址& quot"$upstream_status""$ request _ time & quot& amp#39;& amp#39;"$上游响应时间& quot& amp#39;;access _ log logs/access . log main;3.如何解决请求超时问题?
每个模块都需要有一个完整的日志,可以找出每个模块中每个请求的耗时信息,并配合微信报警提供信息,哪个服务器出现故障可以轻松定位。常见原因有:
1)机器负载过高,耗时增加;2)机器处理异常,消息丢失;3)机器异常。对于处理异常的机器,建议尽快修复bug对于机器异常,请尽快屏蔽有问题的机器。这里机器的负载太高了,所以简单地提供一个可行的解决方案。方案一:优化性能,扩容。检查负载(cpu、内存、io、网络,详见附录),根据具体的性能瓶颈采用不同的优化方法。方案2:异步处理。如果微信服务器推送的消息无法实时处理,可以先存储消息,然后成功返回微信服务器,再在后台处理。如果需要回复用户消息,可以通过调用客服消息接口API来回复用户消息。
4.如何解决access_token的存储和使用?
经常会出现第三方反馈access_token导致服务中断的问题。公众平台发现,大多数第三方都在疯狂地刷新access_token,这使得access_token在超出接口频率限制的情况下失败。下面是access_token的简单存储和使用方案。
1)中控服务器定期调用微信api(建议1小时),刷新access_token,并将新的access_token存储在mysql(或其他存储)中。2)每次其他工作服务器调用微信api时,都会从mysql(或其他存储)获取access_token,并可以在内存中缓存一段时间(建议1分钟)。
公众平台将确保旧的access_token在access_token刷新后的5分钟内仍然可以使用,以确保第三方在更新access_token时不会无法调用微信api。
【相关建议】
1.特别推荐:下载php程序员工具箱V0.1版。
2.下载微信微信官方账号平台源代码
3.下载微信投票源码
这几篇文章你可能也喜欢:
- 暂无相关推荐文章
本文由主机参考刊发,转载请注明:微信开发的报警调查(微信报警模块) https://zhujicankao.com/114748.html
评论前必须登录!
注册