消息通知(Notification)/用户触达系统设计

这篇具有很好参考价值的文章主要介绍了消息通知(Notification)/用户触达系统设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近年来,通知功能已经成为许多应用程序中突出的特性。构建一个能每天发送数百万通知的可扩展系统绝非易事。这正是为什么我觉得有必要记录我在这方面踩坑之路。也叫用户触达系统。

完成这项任务要求对通知生态系统有深刻的理解,否则需求很容易变得模糊和不明确。

1 了解通知系统并确定设计范围

通知是用于向用户提供重要信息的一种方式,如产品更新、提醒事件、优惠等。已成为应用功能清单中的重要组成部分。

通知不仅是移动推送通知。通常,根据接收者的特征

1 通知格式分类

  • 移动推送通知
  • 短信
  • 电子邮件
  • 网页推送通知
  • 第三方应用通知(类似 Slack、钉钉的应用)

2 功能需求

  • 系统支持推送通知、短信、电子邮件和第三方应用通知。
  • 准实时系统。希望用户尽快收到通知。然而,若系统负载过高,轻微延迟也可接受
  • 支持的设备:移动设备(iOS 和 Android)以及笔记本电脑/台式机
  • 通知可以由客户端应用程序事件触发,也可以在服务器端进行计划
  • 用户可以选择不再接收将来的通知
  • 大致上,我希望每天发送1000万条推送通知、500万封电子邮件和100万条短信

3 顶层设计

首先,我们需要找出一个支持各种通知类型的高级设计:短信、电子邮件、iOS推送通知、Android推送通知和Slack应用通知。

然后,系统应该以以下组件结构化:

  • 不同通知类型的配置
  • 收集联系信息流
  • 通知发送和接收流

4 不同通知类型的高级设计与AWS

每种通知类型在高级层面上的工作原理。

4.1 短信

消息通知(Notification)/用户触达系统设计

核心组件

  • Producer — 生产者构建并向【SMS Service】发送通知请求。为构建短信的通知请求,生产者应提供数据:带有国家代码的用户电话号码,JSON字典负载下的短信主题/内容。也就是公司内各业务部门
  • SMS Service,短信服务,用于处理自定义业务逻辑并触发短信发送
  • AWS SNS或第三方短信服务 — 这是AWS用于发送短信的服务,但为增加高可用性和韧性,我添加了第三方短信服务选项。默认,短信服务将调用AWS SNS,但若异常,可切换到其他短信服务
  • SMS device,短信设备 — 接收短信的终端客户端

4.2 📮

消息通知(Notification)/用户触达系统设计

生产者应提供:

  • 用户的email地址
  • email内容

给到Email Service函数。

4.3 iOS推送通知

消息通知(Notification)/用户触达系统设计

使用SNS + APNS的iOS推送通知

Producer将向Mobile Push Service(移动推送服务)提供用户信息,如:

  • 设备令牌
  • 通知内容

Mobile Push Service将构建并向SNS发送通知请求。iOS推送通知请求应构建以下数据:

  • 设备令牌 — 用于发送推送通知的唯一标识符
  • 负载 — 这是APNS定义接受的JSON字典格式

APNS — 这是由Apple提供的远程服务,用于向iOS设备传播推送通知。

4.4 Android推送通知

消息通知(Notification)/用户触达系统设计

使用SNS + FCM的Android推送通知

Android有类似通知流。与使用APNS不同,使用Firebase Cloud Messaging(FCM)向Android设备发送推送通知。

4.5 Slack应用通知

消息通知(Notification)/用户触达系统设计

producer将适当提供:

  • 消息内容
  • 主题/频道地址

给第三方应用推送服务。

SQS是用于控制速率限制的消息队列,因为许多第三方API都有这样的限制。我们要有礼貌地调用第三方API!

本文由博客一文多发平台 OpenWrite 发布!文章来源地址https://www.toymoban.com/news/detail-760032.html

到了这里,关于消息通知(Notification)/用户触达系统设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在校园跑腿系统小程序中,如何设计高效的实时通知与消息推送系统?

    在校园跑腿系统小程序中,选择一个适合的消息推送服务。例如,使用WebSocket技术、Firebase Cloud Messaging (FCM)、或第三方推送服务如Pusher或OneSignal等。注册并获取相关的API密钥或访问令牌。 使用选定的服务提供商的文档,将其集成到小程序后端。这通常涉及使用相应的SDK或AP

    2024年02月05日
    浏览(51)
  • 小程序进阶-用户消息通知

    在使用或开发小程序过程中,我们会发现消息通知是非常重要的一个环节。我把小程序消息通知分为“ 小程序内通知 ”和“ 微信内通知 ”两种。小程序内通知包含各种步骤提示、错误提示以及各种实时消息通知,这些通知只有在用户进入小程序才会看到。微信内通知则是跳

    2024年02月09日
    浏览(43)
  • Android - app内部通知通知栏通知Notification (Kotlin)

    一、简述 先把通知权限打开 为什么写,因为在学kotlin刚好顺手写一下,整块代码在最后 图示效果:(图片来源于网络) 1、首先需要一个NotificationManager对通知进行管理,可以通过调用Context的 getSystemService()方法获取。getSystemService()方法接收一个字符串参数用于确定 获取系统的

    2024年02月08日
    浏览(38)
  • Flutter Notification (通知)

    通知可以用来监听事件,用来刷新页面,先看通知的源码: 从源码可以看出,一般使用方式需要先创建一个继承自 Notification 的类,例如: 使用 NotificationListenerMyNotification() , onNotification 是一个通知回调,其中有个参数 notification ,也就是 MyNotification 的实例对象: 在子组件

    2024年02月16日
    浏览(68)
  • 实现 Notification 通知

    效果如下 例如收到一封邮件,需要消息通知,就可以用这个 可以使用 Notification API来进行实现 代码如下 注意:一定要用服务端打开。不然不会弹出来。vscode可以安装 live Serve 插件服务端打开

    2024年02月14日
    浏览(36)
  • Android Studio Notification(状态栏通知) 不显示通知 解决

    引言:在学习的过程中,我发现,无论怎么修改,甚至是直接复制了大佬的代码,我的程序都不能正确的弹出状态栏通知,在经过一晚上的纠缠后,终于找到了原因 通知不显示 可能由多种原因引起: 通知权限:确保你的应用已经获得了正确的通知权限。在Android设备上,用户

    2024年02月16日
    浏览(44)
  • Android 之 Notification (状态栏通知)详解

    本节带来的是Android中用于在状态栏显示通知信息的控件:Notification,相信大部分 学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而 现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;他们各自的Notification 都是不一样的!而本节给大家

    2024年02月15日
    浏览(40)
  • ElementUI浅尝辄止26:Notification 通知

    悬浮出现在页面角落,显示全局的通知提醒消息。 适用性广泛的通知栏 带有 icon,常用来显示「成功、警告、消息、错误」类的系统消息 可以让 Notification 从屏幕四角中的任意一角弹出 使用 position 属性定义 Notification 的弹出位置,支持四个选项: top-right 、 top-left 、 bottom

    2024年02月09日
    浏览(33)
  • java发送公众号/服务通知模板消息到指定用户(完整流程|亲测可用)

    准备: 获取当前微信小程序appId(小程序appId)获取当前小程序的秘钥secret 新建模板消息 选用后勾选需要的字段并提交 一次订阅: 指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知; 长期订阅: 指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅

    2024年02月10日
    浏览(41)
  • Redis限流实践:实现用户消息推送每天最多通知2次的功能

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程。 🏆另有专栏PHP入门基础教程,

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包