HikariCP数据库连接池实战
上QQ阅读APP看书,第一时间看更新

1.3 技术驱动业务,结果未导向

以上仅仅是高并发时对于TCP的调优,但是抗堆积一定是消息网关的一个很核心的特性,如亚马逊AMAZON SES和SENDCLOUD等都是抗堆积的。

邮件的拥堵会造成一连串的问题,如多个阿里事业部之间邮件紧耦合、每到大促线上互相影响、业务发展严重受限、询盘导致系统雪崩、实时性高的会员注册邮件被整体通道堵死、投递量越大投递成功率越低、投递量用户反馈邮件延迟越多等问题。我清晰地记得,当年不仅故障报告有记载,很多人都记得并说起过因为邮件导致的P0级故障,直接造成了资金损失。

对于流量洪峰,我们可以吸取古人的智慧。早在4000多年前,我国的黄河流域洪水为患,鲧采取“水来土挡”的策略治水,最终失败。大禹确立了一条与他父亲鲧的“堵”相反的方针,叫作“疏”,即“治水须顺水性,水性就下,导之入海。高处就凿通,低处就疏导”的治水思想。

在国际化业务场景如“双十一”时,在美国的服务器远远不如杭州服务器系统设计能力的情况下,我们可以采用多种手段进行“疏导”。

“疏”:可以采用拆分事业部账号、营销和通知账号以让每个发件账号走独立的账号、消息设置优先级(最高优先级不落盘,直接向网关通过绿色通道发送,避免延迟,如提高注册邮件的实时性)、支持整体和局部的流控暂停及停发消息等手段。

“导”:为了防止对于阿里云盘古的冲击,Rowan自身做好抗堆积建设;支持灰度引流,解决阿里云美国系统设计能力弱而杭州系统设计能力强的问题;大促邮件发送参与业务方评估,合理调度纷发;做好充分的预案等。由于中美有13小时的时差,“双十一大促”也可以制定合理的规划,通过“打时间差”的形式处理好中美“双十一大促”的消息投递问题。

邮件领域还有一个经典的黑名单的问题,全球最大的反垃圾邮件组织spamhaus会将发往mail.ru, microsoft(hotmail、outlook、live)等地址的邮件设为接收方拒收。如果营销邮件无法保证接收地址的有效性等原因,很容易被spamhaus封禁,spamhaus也往往不同意解封,一般只能通过邮件和spamhaus沟通。大促预热期对于EDM营销GMV影响很大,尤其是外国人有着看邮件的习惯。正是因为邮件黑名单的问题,我在2016年曾经汇总过一部分数据,发现营销邮件的到达率从95%以上降到了70%左右,EDM相关GMV就跟着下降了30%以上。

针对黑名单问题,优先寻求商务解封。除了商务解封之外,产品设计上需要建设邮件的黑白名单体系,对存量和增量用户进行确认,发送邮件列表的黑白名单,先从Hotmail等会被屏蔽的用户开始,目前在发送邮件的列表中进行过滤;注册新会员如果是在邮件列表中的用户,进行邮箱验证,只验证是否可以发邮件,不影响下单等流程。另外,阿里云需要实现更换机房IP的策略,通过IP更换跳过spamhaus的监测,比如大促前保留备用营销网段随时准备动态切换。质量较低的任务也可以先暂停,当然这些任务暂停并不会影响我们向优质客户(如下过单的用户)发送的EDM邮件,所以对业务上的影响是可控的。具体的业务指标可以在这些低质量任务暂停后观察一下网站的流量指标,基本不会有什么明显影响。

在完成了上述事情以后,2016年“双十一大促”不光技术上提升到万级QPS,业务上也取得了可喜的结果:1.6亿存量用户验证在大促前落地;“双十一”当天2亿营销邮件投递到用户邮箱;大促前3亿营销邮件投放成功;大促期间和2016年上半年比较,在整体的发送量提升的同时,打开率和行动率有10%~15%的提升。