消息中心常见解决方案分享

news2024/11/16 7:32:06

解决方案

    • 1、问题
    • 2、设计
    • 3、流程

看了大部分的消息中心解决方案,发现大家的中心思想都大差不差,区别基本都是在符合自身业务场景的做了一些定制化处理。本文为我对消息中心基本骨架的知识梳理,亦在帮助大家对消息中心设计有一个基本的理解。


1、问题

业务上可能会遇到的问题:

  1. 消息不支持配置化
  2. 消息不支持多语言
  3. 消息掌握能力(查看率、点击率、转化率等)

技术可能上遇到问题:

  1. 发送消息接口不统一(配置化后台、三方中间件、硬编码消息)
  2. 发送消息需要指定的参数过多
  3. 没有进行对外部接口的限流处理
  4. 消息数据管理分析(失败率、延迟率、一键撤回)

2、设计

可将消息中心抽象为三部分:

请添加图片描述

发送消息渠道部分:

  1. 消息渠道:针对不同渠道发送的消息,对渠道进行配置,如短信、邮件、钉钉消息、企微消息

发送消息记录部分:

  1. 消息场景:维护消息的场景类型,即对消息绑定一个场景,场景编码全局唯一,调用方指定场景编码用于定位具体消息
  2. 消息任务:消息中心接收到的上游传递的参数记录。由于一个消息场景可以被
  3. 消息记录:经过一系列处理后真实消息的发送记录,根据业务场景可扩展

发送消息模板配置部分:

  1. 消息基础模板:可用于处理公共样式,简化消息模板配置
  2. 消息模板:配置待发送消息的消息模板,参数值以占位符形式提供,消息模板在配置时需要绑定消息场景、以及消息渠道。

注意,由于一个消息场景可以被多个消息模板配置,所以上面提到的消息任务和消息记录不是一对一的


3、流程

上游指定消息场景中的消息编码和用户调用接口。消息中心接收到消息后,根据请求中的场景编码查询出所有配置的消息模板。每一个消息模板对应一条待发送得消息,在每一条要发送的消息中,首先完成对当前场景的规则的校验,校验通过后获取消息模板配置的渠道,发送具体的消息给对应得用户。

整体流程:
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1201184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python---字典---dict

1、为什么需要字典 如果想要存储一个人的信息,姓名:Tom,年龄:20周岁,性别:男,如何快速存储。 person [Tom, 20, 男] 在日常生活中,姓名、年龄以及性别同属于一个人的基本特征。 但…

RT-Thread:嵌入式实时操作系统的设计与应用

RT-Thread(Real-Time Thread)是一个开源的嵌入式实时操作系统,其设计和应用在嵌入式领域具有重要意义。本文将从RT-Thread的设计理念、核心特性,以及在嵌入式系统中的应用等方面进行探讨,对其进行全面的介绍。 首先&a…

STL简介+浅浅了解string——“C++”

各位CSDN的uu们好呀,终于到小雅兰的STL的学习了,下面,让我们进入CSTL的世界吧!!! 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的缺陷 7.为什么要学习string类 …

Spring Data JPA 实现集成实体对象数据库的创建、修改时间字段自动更新

JPA提供了一种事件监听器的机制,用于SQL审计,通过监听器我们可以很快速地去自动更新创建时间、修改时间,主要步骤如下: 一、创建基础实体,包含了创建和修改时间,然后让其他真正的实体继承该实体&#xff0…

云原生微服务架构及实现技术

云原生是一种技术理念和架构方法,它充分利用云计算的优势,将应用程序和基础设施进行优化,以适应云环境的特性。云原生的设计原则主要包括弹性、韧性、安全性、可观测性、灰度等,旨在让企业在云环境中实现轻量、敏捷、高度自动化的…

Spring基础——初探

Spring是一个开源的Java应用程序开发框架,它提供了一个综合的编程和配置模型,用于构建现代化的企业级应用程序。Spring的目标是简化Java开发,并提供了许多功能和特性,以提供开发效率、降低开发复杂性。 特别 主要功能 IoC容器 …

JPA Buddy快速创建update、find、count、delete、exists方法

JPA Buddy快速创建update、find、count、delete、exists方法,JPA默认提供的CrudRepository\JpaRepository提供的方法比较少,一般我们会手写一些方法,这里我们选择通过JPA Buddy快速生成,之前文章中讲到了JPA Buddy原本是IDEA收费插…

数据结构与算法【数组】Java实现

数组是一组元素组成的数据结构,元素类型必须相同,其次,数组内元素是连续存储的,因此数组中元素地址可以通过索引计算出来。 空间占用 在Java中,数组本质上也是一个对象,因此也存在对象头信息。那么数组的…

PHP原生类总结利用

再SPL介绍 SPL就是Standard PHP Library的缩写。据手册显示,SPL是用于解决典型问题(standard problems)的一组接口与类的集合。打开手册,正如上面的定义一样,有许多封装好的类。因为是要解决典型问题,免不了有一些处理文…

新的开始吧

项目答辩终于结束了: 学习规划 下面先对自己的目前的情况来说: 学长学姐让我先把vue和boot学完,所以我打算先把vue3和boot学一下,但是每天还要花一点时间在六级的听力和阅读上面,还有就是算法; 下面进行…

换根dp学习笔记

最近模拟赛经常做到,于是我就学习了一下。 算法原理 换根 d p dp dp的题一般都会给出一个无根树,因为以不同的点为根时,问题的答案不一样,所以它会让你输出答案的最大或最小值。 暴力去做这种题,就是以每个点为根然…

HarmonyOS 学习记录

时光荏苒,岁月如梭,韶华不负,未来可期。转眼间已经30岁了,学习的重要性不言而喻,在接下来的日子里记录下自己学习HarmonyOS的过程。增加一下知识储备,防患于未然嘛 不得不说华为的开发文档写的不错,开发工具直接安装后自动配置环境…

RLHF讲解

RLHF包含了两个至关重要的步骤: 训练Reward Model用Reward Model和SFT Model构造Reward Function,基于PPO算法来训练LLM frozen RMfrozen SFT ModelActor π Φ R L \pi_{\Phi}^{R L} πΦRL​ initialized from SFT ModelCritic V η V_\eta Vη​ i…

基于springboot实现结合疫情情况的婚恋系统【项目源码】

基于springboot实现结合疫情情况的婚恋系统演示 SpringBoot框架 SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原…

头歌答案HTML——基础

目录 HTML——基础 第1关:初识HTML:简单的Hello World网页制作 任务描述 第2关:HTML结构:自我简介网页 任务描述 HTML——基本标签 第1关:创建第一个 HTML 标签 任务描述 第2关:创建 任务描述 …

【Liunx】服务器解决 跨域问题

首先打开后端的站点 在站点设置内打开 "配置文件" 然后在 “server_name 本机ip ”下方添加跨域配置,添加成功后重启nginx即可 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS, PUT, DELETE; add_header A…

使用Python分析时序数据集中的缺失数据

大家好,时间序列数据几乎每秒都会从多种来源收集,因此经常会出现一些数据质量问题,其中之一是缺失数据。 在序列数据的背景下,缺失信息可能由多种原因引起,包括采集系统的错误(例如传感器故障)…

ROS基础知识复习

【置顶】感谢参考:https://zhuanlan.zhihu.com/p/662074088 0.背景 工作一年多没有做 ROS 相关的开发了,最近找工作想做回这一块来,根据参考内容,抽时间给这边的基础知识敲一遍复习一下 1.环境检查 打开了之前的笔记本&#x…

AOMedia发布免版税沉浸音频规范IAMF

11月10日,开放媒体联盟(AOMedia)发布了旗下首个沉浸式音频规范IAMF(https://aomediacodec.github.io/iamf/),IAMF是一种编解码器无关的容器规范,可以携带回放时间渲染算法和音频混音的信息&…

git分支与tag标签的介绍与使用)

git分支与tag标签的介绍与使用 一.什么是分支与标签1.2.开发环境分层 二git分支介绍2.1分支操作2.2.IDEA中操作分支 三、Git标签的讲解3.1.GitBashHere操作标签3.2. IDEA中操作标签 一.什么是分支与标签 分支(Branches): 功能开发&#xff…