为什么 PUSH 推送要经常背锅?
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
自从做了推送以后,每隔一段时间就发现有各大的公司推送事故出现。
你问我做开发的慌不慌,我当然慌得一批了。
为什么经常会有推送事故?
为什么会经常出现类似的事故呢?我认为最主要的原因是:预发和线上的环境是同一套。
众所周知,我们的系统都有几套的环境(比如说本地/线下/预发/线上 环境),其中大多数公司的预发和线上环境数据库是同一套的,只是预发环境调用的是预发环境的接口,线上环境调用的是线上环境的接口而已。
推送这种系统的线上和预发环境其实没多大的区别,因为在底层是调用外部的接口来实现发送的,所以预发和线上环境其实调的都是同一个接口。
科普一下推送是怎么做的
Push推送消息能够在你手机闭屏时(即便你没有打开APP),通过通知来给你推送信息,是一种能够直接触达用户的消息推送。
要给用户下发消息,我们得维护APP 客户端和服务端的「长连接心跳」。这个长连接心跳如果由我们自行来维护,难度会很大,绝大部分的公司不会自建推送服务。
目前我们手机类型分为两种:安卓和iOS。
iOS我们默认走的是官方推送的渠道APNS。iOS 在系统层面与苹果 APNs(Apple Push Notification service)服务器建立连接,系统收到 APNs 服务器消息后会帮我们转发到相应的APP上;
安卓由于Google在国内访问不稳定,在国内暂未统一掉推送服务。目前更多的是众多的手机厂商在其定制的系统中也内置了推送功能,如小米、华为等。由于接入成本的问题,也出现了大量的第三方推送服务提供商,比如个推、极光、友盟。
工信部牵头成立的“安卓统一推送联盟”还在期待中。
总结:
iOS端我们更多用的是APNs服务器下发推送消息;
安卓端由于接入成本的问题,更多的是接入各个第三方推送服务提供商,第三方推送服务提供商也会接入对应的手机厂商来实现对消息的下发
我们做了什么预防推送事故?
在大多数情况下,推送事故往往是「运营」的推送导致的。运营要推送消息给用户,首先需要圈选一个人群去推送。
人群量需要管控:我们在圈选的时候,如果运营圈定的人数大于一个阈值,我们会走邮箱让主管确认是否需要圈选这么一个大的人群去推送。
这块有两个目的:
首先我们是认为推送的人群应该是精细化的,什么标签的人群应该收到什么的推送。不应该圈定一个庞大的人群去推送同一条文案的消息(新闻APP除外)。
即便出了事故,也只是一部分用户能收到,而不是全体用户。
在我们的系统是没有全体用户推送的。
在运营圈定人群后,我们会有单独的测试功能去「测试单个用户」是否能正常下发消息,文案链接是否存在问题。
这一个步骤是必须要做的,给用户发出的消息,首先要经过自己的校验。如果确认链接和文案都无问题后,则提交任务,走工单审批后才能发送。
如果在启动之后发现文案/链接存在问题,还可以拦截剩余未发的消息。
针对于通知类的消息(技术方推送),我们在预发环境下配置了「白名单」才能收到消息。
线上消息有「去重」的逻辑:
在某段时间内,过滤掉重复消息;
运营类消息推送(圈定人群的方式去下发消息)同一个用户需要相隔一段时间才能下发一次。
虽然说,我们制定了很多的规则去尽量避免事故的发生,但不得不说推送还是一个容易出现事故的功能。
我的牛逼已经吹完了,如果某天发现我的推送出了事故,不要@我,当没见过这篇文章就好。
原文链接:
https://blog.csdn.net/java_3y/article/details/106090620
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-06-17
本文作者:Java3y
本文来自:“CSDN”,了解相关信息可以关注“CSDN”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
机器学习变得越来越容易,但软件工程仍然很困难
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者声明:本文是一篇评论文章,仅代表本人观点。我认为当世界上有更多的通才和实干者(不只是专家)来构建事物和解决问题时,这个世界会变得更好。 在过年的五年中,机器学习变得更容易了。与此同时,软件工程比以往任何时候都要复杂。对于软件工程师而言,这是一件好事。但对于机器学习专家而言,这并不是好事。这是机器学习向软件工程靠拢的进程,也是数据科学向数据分析靠拢的进程。本文由 Chris 发表在 medium.com,经原作者授权由 InfoQ 中文站翻译并分享 机器学习工具正变得越来越易用 谷歌希望让所有人,无论技术背景如何,都能很容易掌握机器学习模型的训练方法。(参见:技术民主化)随着机器学习变得越来越容易使用,云服务的市场也在增长,而理解算法的意义也在下降。 曾经,我们需要人工实现算法。现在 Sklearn 使得同样的算法只需几行代码就能实现。 原本的 TensorFlow 很难使用,Keras 让它变得简单多了。 现在,谷歌、微软和亚马逊都提供选择模型、训练模型和调参的云服务,然后通过一个 ...
- 下一篇
智能家居:传统厂商与新势力的撕裂
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 雷布斯在抖音上,分享了一个关于小米全套智能家居的短视频,短时间内就获得了92.6万个赞,8.7万条评论。显然,大众对于智能家居的关注度,相比之前被认为是伪命题的智能家居时代要高得多。 目前在智能家居领域里,各个巨头都急于占上一角。但是,巨头们在智能家居里战火弥漫,在消费者一端热情度却还远远不足。 智能家居黄金时代到了? “智能家居前景可期。”这句话已经喊了好多年,但是过去智能家居一直处在叫好不叫座的状态。究其原因,还是技术与网络问题难以满足智能家居更加往前一步的发展。 随着技术不断发展,智能家居逐渐从伪命题阶段走到实现产品落地阶段,而今5G技术的成熟,则在智能家居这一片广阔的海域当中激起一番暗涌。 一方面,智能家电与家庭安全数据是需要快速、稳定的网络传输来作为基础,而5G技术的商用投入,意味着这一环节将会得到进一步的改善。 另一方面,随着5G技术的发展,5G技术往更加成熟方向迈进,相应的其他技术也会得到助力,类似于人工智能、云计算等技术同样会进一步向前。智能家居中的硬件设施、关联技术等向...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7