常见活动扑街错误及应对方案
常见的网站错误表现有哪些呢?
一般来说,常见的错误可以分为40x系列和50x系列。我们经常在网站上看到的,比如“404 页面找不到了”,就属于40x系列的错误提示。可能还会配有可爱的卡通和文案,但本质上都是系统无法找到你要访问的页面。
而50x系列的错误提示,可能会是类似“啊哦,系统崩溃了~”或者“系统繁忙,请稍后再试”。这意味着系统真的崩溃了。
还有一种较轻量的错误,可能是页面加载时间过长,部分或全部内容无法显示。这说明系统的响应超时,忙不过来了。当然,也有可能是因为客户端的网络问题,或者网络速度太慢导致的。
对于复杂的网页来说,由于各个模块的内容可能是分开加载的,所以有时候部分内容无法显示,比如页面上的一个排行榜加载不出来,这可能是单个数据接口出现问题,或者忙不过来了。
那么作为运营人员,对于这些常见的错误,我们能做些什么呢?接下来,我将根据错误的严重程度,进行详细讲解。
50x错误的应对方案
首先,最严重的错误莫过于50x系列,也就是系统真的崩溃了。这种情况可能是运维或者程序设计的问题,导致系统架构不合理,代码存在问题,或者机器性能不足,带宽不够等等。除了程序错误的硬伤,这些问题都可以总结为“系统的能力无法满足承载的流量”。也就是说,你的系统无法处理这么大的流量。
我们都知道,系统可以通过增加机器的方式来扩容,但是加机器也有局限性,比如临时扩充的速度,多台机器数据同步等问题。当流量达到某个级别时,加机器无法解决问题。
那么我们能做什么呢?
我们可以做的是,提前预估活动的流量,并提前告知开发、运维和其他相关人员。如果无法准确预估,那么可以让技术人员根据以往活动经验,在预算允许的情况下,尽量为系统留出一些余地,比如增加机器,提升带宽等。很多时候,问题不在于机器的性能,而是出口带宽受限,比如调用微信的API很慢,往往是因为自身机器出口带宽不足,而不是微信服务器的问题。提前留出余地总比系统崩溃强,因为无法应对的流量对品牌形象有负面影响。
40x错误的应对方案
对于这类错误来说,通常是因为查找文档出现问题。常见的原因可能是服务器权限问题导致403错误,或者路径配置错误或文件发布失败导致404错误。因此,作为运营人员,特别要注意在一些可配置的地方粘贴URL时是否符合规范,比如是否包含特殊字符,参数的问号和&是否使用正确等等。有时候只是因为链接配置错误,才会导致404错误,这是完全可以避免的。
另一种可能是开发人员发布失败。对于重要的活动,即使忙碌也要亲自体验一遍,不要因为别人的错误影响自己的工作。
响应慢的应对方案
系统响应慢往往是50x错误的前兆,如果长时间没有响应,那么后端进程可能会被杀死,导致客户端的网络请求无法响应。归根结底,还是系统能力与承载流量不匹配。除了前面提到的增加机器和带宽外,还有其他方法吗?当然有。
如果这种问题经常出现,那么一定要提需求让开发和运维人员优化系统架构,优化程序代码,增加多级缓存等操作,提升系统的抗压能力。
对于活动的节奏来说,往往也有一定的弹性空间。比如在公众号推送时,可以选择分组推送,用户对于自己比别人收到消息的时间早点或晚点,并没有太大的感知。稍微分组推送可以有效缓解系统的压力。另外,在推送的图文消息中,将链接到自己系统的入口放在页面底部,可以在用户浏览页面时拉开时间差,分散系统的压力。
有些系统压力是由定时任务造成的。比如业务需求中经常有一些“自动任务”,在每天特定的时间执行。许多开发人员会默认使用午夜12点这个时间设置,导致每天午夜系统的负载都处于高峰。而运营活动也喜欢在这个时间,比如双十一的抢购、付尾款等。这就导致压力都集中在一起,系统自身无法承受。
对于这部分问题,我们可以考虑调整定时任务的需求,是否可以在凌晨2点执行?这样至少可以分散内部的压力,然后再有资源去应对外部的流量压力。
通过修改活动规则也可以分散压力。不一定要求大家在很短的时间窗口内进行抢购,可以稍微延长活动节奏,比如连续签到打卡等。
躲不开的流量
前面介绍的方案都是为了分散系统整体的流量,那么对于已经进入我们页面的用户,我们还可以通过修改交互的方式,将消耗系统资源多的操作延后。比如如果页面一进来就直接操作数据库查询一个大的排行榜,会非常消耗系统资源。当然,这种情况可以通过缓存来解决,但是有些情况下难以实现缓存,比如查询银行余额、积分余额等。这些资产相关的查询往往要求高度的实时性,这时我们能做的就是设计一个可以分散流量的交互方式。
一个典型的例子是,在活动页前面加上前导页,做一些氛围图和活动说明,然后增加一个“立即参与”的按钮,然后才进入更重的活动页。虽然这样稍微损失了用户体验,但是相比于高峰时期页面卡在那里要好得多。由于每个人浏览和点击的时间不一样,这种方法可以有效减缓峰值。
对于实时性要求不高的业务逻辑,可以进行异步化处理,稍微推迟更新也没有关系。这样可以使用定时任务处理,即使时间间隔较短,也可以按照队列有序的方式进行处理,不会一下子消耗系统的资源。对于抢购等业务,更应该设计成排队机制,不管有多少人,都不要进行过重的业务逻辑处理,先将其放入队列等待,然后只选择部分用户继续后续的业务逻辑。这些内容很大程度上取决于系统架构师的工作,这里就不再讨论。
最后,出现问题后,赶紧找开发人员和运维人员,千万不要犹豫。如果没有提前制定应急方案,只能依靠技术人员的应变能力。然后通过活动复盘,总结各方经验和教训,避免下次悲剧的发生。
综上所述,核心的应对策略包括以下六点:
-
提前告知整体活动节奏,进行事前预防;
-
检查配置信息,避免人为错误;
-
修改活动规则,拉长活动时间,进行分组推送;
-
修改交互方式,将逻辑后置;
-
提前制定应急方案;
-
完成活动后进行复盘,总结教训。
各位同学,你们都学会了吗?
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请您通过400-62-96871或关注我们的公众号与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~