业务消息中心系统设计与实现(一)

article/2025/9/1 12:59:50

目录

解决问题场景?

那么这款内部业务消息中心需要满足哪些功能呢?


哈喽小伙伴,我是kilde,和有需要的小伙伴分享一个业务消息中心的设计思想与实现,喜欢的小伙伴可以点赞关注博主,觉得有用的也可以打赏博主哦,也希望这个博客能给各位有需要的小伙伴或多或少解决一些场景问题或者提供一下设计思想

解决问题场景?

 现在的服务发送消息示例如图上,都是在各自的服务中聚合好消息后推送出的

随着集团业务增长迭代与对外部C端产品(app、pc)的不断演化、分叉,出现了多款APP和PC端产品,每个产品的消息通知或有关联或无关联,那么每个业务线的需求方、产品人员、研发人员几乎都需要重新设计这一块并且实现,在时间与人力成本上的支出会有许多不必要的浪费,所以在内部生态的场景下急需一款业务中间件来解决上述的问题

那么这款内部业务消息中心需要满足哪些功能呢?

1、兼容内部业务所有的消息源头,包括MQ消息、rest消息等

2、具有自动化消息分类分发功能,也就是比如审核类消息.下单物流消息,注册类通知等等

3、具有快去兼容消息生产端与消费端能力

4、具有消息溯源功能

5、具有部分消息聚合功能,也就是需要把消息封装成我们想要的最终样子分发出去

那么我们根据上述的这些功能简单的画下架构图

 那么下面让我们一步步来实现这个小而全的消息中心吧,代码与实现思想讲解将分为几个章节完成,喜欢的小伙伴可以关注下博主

GIT地址:


http://chatgpt.dhexx.cn/article/mAOx7Ixs.shtml

相关文章

仿微博消息中心的系统设计与实现

最近在实现一个类似于微博、网易云的消息中心模块。主要实现的功能是,将系统中的点赞、评论、等消息做汇合。今天跟大家分享下,我们的设计和实现思路。 首先说明,我们目前是微服务的架构。所以本篇文章中对于消息中心的设计也是建立在微服务的…

消息中心构架设计说明书

目录 1 1. 文档介绍.... 4 1.1 文档目的... 4 1.2 文档范围... 4 1.3 读者对象... 4 1.4 参考文献... 4 1.5 术语与缩写解释... 4 2 系统概述.... 5 3 设计约束.... 6 4 设计策略.... 7 5 系统总体结构.... 8 6 …

04_消息中心(MessageCenter)

一介绍 该消息中心是基于委托和事件(观察者模式)设计的,是 MxFramework框架 的一个子模块。 主要是为了处理消息的收发。 二、消息处理中心(代码如下) /**** * Title: MXFramework* 主题: 消息中心* …

实际项目中的消息中心

前一篇文章讲到我们项目的工作流,这一篇我们扒一扒项目中的消息中心,msgcenter。消息可以分成很多种消息:留存可重复查看的DB消息,短暂保存在redis的comet消息,短信形式的msg消息,推送到手机的push消息等等…

消息中心

1 系统结构 消息中心体系结构如下图所示: 图中红色线表示移动消息的推送路径。 此结构适用于企业消息中心,也适用于平台,消息推送代理的消息推送服务接口(Web Service)可以作为开放服务。 本地服务器是消息源。…

消息中心(系统消息)实现

需求 用户能即时的收到来自系统或者其他用户发来的消息,在web界面右下角弹窗提醒,用户还能标记消息是否已阅状态。 即时通讯 概念:即时通讯(实时通信,Instant Messaging,简称IM)是一个实时通…

消息中心设计

1 参考文档 产品参考:消息通知系统设计 | 人人都是产品经理 (woshipm.com) 2 消息中心目标职责 消息中心仅作为消息发送使用,跟业务没有任何关系,涉及到业务部分有业务系统自行处理;消息中心的功能只有消息生产、消息展示、消息推…

如何设计一个消息中心

如今的内容型产品,不管提供的是什么类型的内容,在其主功能之外,不可避免的会有另一个十分重要的功能——消息中心。 而无论是信息流、论坛、信箱,还是私聊、群聊、通知,推拉模型是内容型(包括:社…

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

厌烦被消息打扰,又怕突然间的安静; 一、业务背景 微服务的架构体系中,会存在很多基础服务,提供一些大部分服务都可能需要的能力,比如文件管理、MQ队列、缓存机制、消息中心等等,这些服务需要提供各种可以复…

4. 消息中心的设计与实现

消息中心的设计与实现 一、引言 运用场景: 1、消息的主动提醒(客户端被动接收) 2、客户模块(及时通讯) 3、单一登录(一个账号只能在一个设备登录) 消息中心的实现方案: 1、客户端轮…

mysql格式化数字去掉千分位

前言 使用format格式化数字时,超过1000就会有千分位,但有时我们不希望有这个千分位,那怎么去掉呢? 1. select format(11111.123,2) 2. select convert(11111.123,decimal(12,2))

upper mysql_MySQL函数

MySQL函数 Lower 转换小写 upper 转换大写 substr 取子串(substr(被截取的字符串,起始下标,截取的长度)) length 取长度 trim 去空格 str_to_date 将字符串转换成日期 date_format 格式化日期 format 设置千分位 round 四舍五入 rand() 生成随机数 Ifnull 可以将null转换成一个…

MySql FORMAT 去掉千位分隔符,

加上墨西哥的地区参数即可 SELECT FORMAT(35555566.8, 2, es_MX) AS value; 结果

MySQL知识总结

目录 知识点条件查询排序常见单行处理函数(可嵌套)多行处理函数分组查询distinct去重 连接查询⭐⭐⭐⭐⭐内连接外连接多表连接(两张表以上) 子查询where子句中的子查询from 子句中的子查询select后面出现的子查询 union合并查询结…

MySQL知识点

总结汇总MySQL数据库面试题(2020最新版)_ThinkWon的博客-CSDN博客_mysql数据库面试题 1. 索引 (1)主键索引 唯一非空,属于聚簇索引 (2)唯一索引 unique 可为空(多个null也可) (3&…

mysql 处理金额_MYSQL处理金额相关函数

1.FORMAT()数字千分位分割 FORMAT(X,D) 1.X需要格式化的数字 2.D保留小数位数 例:SELECT FORMAT(12334555.213,2) 2.ABS() 求绝对值 ABS(X) SELECT ABS(-23); SELECT ABS(21-23); SELECT ABS(23); 3.四舍五入保留小数 ROUND(X,D) 1.X需要格式化的数字 2.D保留小数位数(不写时默…

C语言字符数组的输入和输出

字符数组的输入输出有两种方法&#xff1a; &#xff08;1&#xff09;逐个字符输入输出。用格式符“%c”输入或输出一个字符。例如 int main() {char c[6]; //定义一个字符串for (int i 0; i < 5; i){scanf("%c", &c[i]); //输入字符串}for (int i 0; …

C语言 | 字符数组

C语言字符数组的定义 字符数组是用来存放字符数据的数组&#xff0c;字符数组中的一个元素存放一个字符&#xff0c;定义字符数组的方法和定义数值型数组的方法类似。 //例子&#xff1a;char character[10];C语言字符数组的初始化 C语言对字符数组初始化&#xff0c;最容易理解…

C语言,字符数组与字符串

文章目录 字符数组基本介绍字符串注意事项字符串的访问和遍历字符串的表示形式用字符数组存放一个字符串&#xff1a; 用字符数组存放一个字符串,用字符指针指向一个字符串使用字符指针变量和字符数组两种方法表示字符串的讨论 字符串相关函数常用字符串函数一览字符串函数应用…

浅谈字符数组

文章目录 一、什么是字符数组二、字符数组的定义和赋值1. 先定义一个数组&#xff0c;再为挨个元素进行赋值2. 在定义的同时给该字符数组进行初始化2.1 错误的初始化方式2.2 正确的初始化方式 3. 特别注意&#xff01;&#xff01;&#xff01;3.1 字符数组和整型数组一样不支持…