0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

聊聊消息中心的设计与实现逻辑方法

OSC开源社区 来源:知了一笑 2023-12-28 17:21 次阅读

厌烦被消息打扰,又怕突然间的安静;

一、业务背景

微服务的架构体系中,会存在很多基础服务,提供一些大部分服务都可能需要的能力,比如文件管理、MQ队列、缓存机制、消息中心等等,这些服务需要提供各种可以复用的方法或者接口,以便其他业务服务可以快速调用;下面来看看消息通知的原理:

81f56ed8-a560-11ee-8b88-92fbcf53809c.png

这里的消息不同于MQ队列,是指业务侧的通知机制,例如短信、邮件、系统消息等,在业务层面的需求很多,通常会封装单独的消息中心提供通知机制;

从流程上面看,消息通知是典型的生产-消费模式,业务侧不断的生产消息,消息中心在接收之后进行消费,把通知推送到相应的渠道中,很显然这种逻辑具备很高的复用性。

二、消息通知

1、流程管理

消息通知的流程设计,在各个业务线中通过消息中心提供的接口方法,将不同场景下的消息内容提交到消息中心,消息中心进行统一维护管理,并根据消息的来源和去向,适配相应的推送逻辑:

82003534-a560-11ee-8b88-92fbcf53809c.png

消息生产:涉及到的场景很多,比如活动、营销机制、系统通知、业务流转、过期提醒等;

消息管理:对预发送消息的结构和参数进行校验,并创建消息推送的任务,维护任务级别的推送管理,跟踪消息的状态周期;

消息消费:基于消息任务的结构,构建消息推送的主体内容,并对接多个发送渠道,实现通知的高效触达;

定时任务:消息可以直接即时推送,但如果是夜间定时任务触发,则要考虑推送延迟问题,将消息放在指定时段投递;

渠道对接:通常不同的渠道意味着不同的场景,例如监控推送钉钉,活动一般推送微信,账户变动发邮件,营销走短信,业务则应用内通知;

在整个流程中涉及到的模块比较多,状态的流转也很复杂,但是通过消息中心进行统一标准管理和流入流出的跟踪,也可以提供清晰的生命周期监控和维护;

2、流程时序

在整个消息通知链路中,在不同的流转节点中,无不涉及状态的变化(即from.to状态),这样可以构成整个生命周期的视图:

82099be2-a560-11ee-8b88-92fbcf53809c.png

初始化:业务方构建简单的消息结构,请求发送到消息中心后,初始化一个消息任务;

任务化:对消息发送请求进行校验,并将消息转换成一个标准的推送任务结构;

推送中:根据任务推送的时间周期类型,将任务构建成不同渠道的通知主体,从而进行渠道消息推送;

已完成:根据消息在渠道推送的状态回调,更新消息中心的任务完成状态,或者失败重试;

大部分的消息通知机制都可以容忍一定的延迟性,所以消息中心完全可以解耦各个流程,引入MQ队列或者异步机制,业务方只需要将请求发送到消息中心,之后由消息中心统一调度和管理即可;

3、结构设计

这里根据系统的实现过程和经验,给出一个数据结构的设计参考,用来对业务场景做简单的维度描述:

823be12e-a560-11ee-8b88-92fbcf53809c.png

消息模板:定义通知的主体结构,基于消息的参数模型,构建推送的消息内容;

消息任务:消息中心管理和维护的主体结构,以任务的模式维护消息从生产到推送完成的整个状态周期;

场景记录:消息最终推送出去的内容和场景分类,也可以简单的理解为不同渠道的投递记录;

交互消息:强调消息在接收方是否触达并且对消息产生了交互行为,例如会话,邮件回复,状态关联等;

三、实践总结

最后还是站在技术实现的角度,总结一下消息通知机制中的一些关键问题:

生产消费:消息生产之后写入消息中心的存储容器,之后进行消费流程的管理,是业务解耦的常用手段;

任务管理:以任务的模式进行消息推送的调度,通过任务状态的变化和控制,实现生命周期的管理;

状态机:描述消息的流转节点和状态,在不同的事件中触发不同的状态切换和转移,并在状态变化后衔接各种业务动作;

渠道对接:通常消息推送的渠道多是第三方平台,所以在消息中心会接入诸多的渠道,例如微信、钉钉、短信等;

基础封装:作为分布式系统中的基础功能,在封装消息管理功能时,要考虑一定的复用性和流程的可视化呈现;

消息的本质是信息的触达和传递,但是过多的消息通知也容易让用户产生厌倦心态,所以消息内容的简洁明确,推送的间隔时段以及阅读提醒,在产品具体的实现上需要极为用心,从而让消息在业务体系中发挥更大的价值。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:聊聊消息中心的设计与实现逻辑

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    模拟IC设计原理图1:逻辑电路是如何通过MOS管实现

    今天来聊聊我们常用的逻辑电路是如何通过MOS管实现的。
    的头像 发表于 10-30 15:19 2851次阅读
    模拟IC设计原理图1:<b class='flag-5'>逻辑</b>电路是如何通过MOS管<b class='flag-5'>实现</b>的

    【经验分享】PET符合电路逻辑实现问题

    可以自行设定。有了这样的约束之后,就算某个时刻模块0和模块10同时探测到了事件,那么我们也不能判断这对事件属于符合事件了。有了上述具体化的说明,那么具体逻辑实现的时候就非常简单了,具体实现
    发表于 01-13 15:32

    逻辑电路的计算方法

    来源:互联网今天我们来聊聊逻辑电路的计算,跟着小编一起来学习一下吧! 逻辑常量与变量:逻辑常量只有两个,即0和1,用来表示两个对立的逻辑状态
    发表于 10-22 16:37

    有什么方法可以实现逻辑分析仪的实时存储吗?

    有什么方法可以实现逻辑分析仪的实时存储吗?
    发表于 05-06 07:39

    聊聊存储器的相关知识

    虚拟地址物理地址等众多地址及MMU相关知识先聊聊存储器STM32单片机存储器关于编译器生成的文件数据在存储器上的存储结构物理地址、虚拟地址、线性地址和逻辑地址物理地址虚拟地址逻辑地址线性地址这些地址
    发表于 02-11 07:51

    数字系统的基本算法与逻辑电路实现

    数字系统的基本算法与逻辑电路实现:本章主要介绍数字系统的基本算法设计及对应的逻辑电路的实现方法。算法设计中主要考虑的因素1.
    发表于 09-01 09:04 0次下载

    基于PLD芯片的时序逻辑设计与实现

    基于PLD芯片的时序逻辑设计与实现:原理图输入设计直观、便捷、操作灵活;1-1、原理图设计方法简介QuartusII已包含了数字电路的基本逻辑元件库(各类
    发表于 10-29 22:03 0次下载

    逻辑设计中M图的硬件电路实现方法

    摘要:给出了基于A S M 图的数字集成电路控制器的设计的主要电路实现方法,并给出了目前最常采用的方法——EDA法.关键词: A S M 图; 逻辑设计; E DA; On e&nbs
    发表于 04-26 11:25 14次下载

    实现拆分大组合逻辑方法

    图1是很多为了提高系统时钟采用的拆分大组合逻辑方法,但是没有提供具体如何拆分的实例。我觉得实例才是重要的。但我不明白在写代码时,如何知道这样写会被综合成一个很
    发表于 06-05 11:58 1031次阅读
    <b class='flag-5'>实现</b>拆分大组合<b class='flag-5'>逻辑</b>的<b class='flag-5'>方法</b>

    3相3级逆变器实现中心对齐SVPWM的方法

    摘要 空间矢量脉宽调制(SVPWM)广泛用于3相逆变器控制系统。SVPWM MCU实现的最有效方法中心对齐PWM,因为MCU中的PWM模块可轻松产生中心对齐PWM。本文将讨论SVPW
    发表于 11-16 16:12 11次下载
    3相3级逆变器<b class='flag-5'>实现</b><b class='flag-5'>中心</b>对齐SVPWM的<b class='flag-5'>方法</b>

    如何利用可编程逻辑实现数据中心互连 DCI互连盒架构解读

    随着实施基于云的服务和机器到机器通信所产生的数据呈指数级增长,数据中心面临重重挑战。如何使可编程逻辑实现数据中心互连至关重要。
    发表于 03-12 15:47 1013次阅读

    聊聊消息中心的设计与实现

    微服务的架构体系中,会存在很多基础服务,提供一些大部分服务都可能需要的能力,比如文件管理、MQ队列、缓存机制、消息中心等等
    的头像 发表于 05-29 15:03 1588次阅读
    <b class='flag-5'>聊聊</b>消息<b class='flag-5'>中心</b>的设计与<b class='flag-5'>实现</b>

    如何实现PLC的自动化控制逻辑

    地提高了生产效率和设备运行的稳定性。本文将详细介绍如何实现PLC的自动化控制逻辑,包括PLC的基本概念、编程工具、逻辑实现方法以及实际应用案
    的头像 发表于 06-15 16:44 1002次阅读

    组合逻辑控制器是用什么实现

    组合逻辑控制器是一种用于控制和管理复杂系统中各个组件之间交互的逻辑设备。它可以应用于各种领域,如计算机科学、通信、自动化控制等。在这篇文章中,我们将详细探讨组合逻辑控制器的实现
    的头像 发表于 06-30 10:11 436次阅读

    组合逻辑控制器的基本概念、实现原理及设计方法

    广泛应用于计算机、通信、控制等领域。 本文将详细介绍组合逻辑控制器的基本概念、实现原理、设计方法、应用场景等方面的内容,以帮助读者全面了解组合逻辑控制器。 基本概念 1.1 组合
    的头像 发表于 06-30 10:26 1198次阅读