目标

研发一套独立的消息系统,此系统进行集中配置管理供各业务系统使用,用于支撑站内信、短信通知、短信验证码、邮件、微信消息、APP消息、IM等消息形式。

架构

1) 基于消息队列采用发布、订阅模式。消息的生产者为对外的消息接口,接收业务系统消息后将消息写入到消息队列指定的topic,订阅者对消息进行处理并行的发送消息。

2) 所有通知消息定义唯一“消息ID”来标识消息类型。

3) 通知消息由各消息模块(短信、邮件、站内信、微信、APP)自己负责本消息的发送,去读取消息节点配置信息,根据当前的消息ID判断自己是否需要发送消息,是则发送否则丢弃。

4) 消息体,消息体采用JSON报文格式,方便各系统之间对接。

消息数据定义

{

msghead:

{

msgtype:””,

msgid:””,

rcvuid:””,

rcvcid:””,

rcvmobile:””,

rcvemail:””,

time:””,

system:””

}

,

msgbody:

{

text:””,

noticemsg:””,

wxmsg:””,

appmsg:””,

immsg:””,

smsmsg:[{},{}]

}

}

字段

说明

msghead

消息头

Msgtype

消息类型

消息类型:notice/sms/email/im/wx

Msgid

消息id

定义全局唯一

Rcvuid

接收帐号id

Rcvcid

接收公司id

Rcvmobile

接收手机号

Rcvemail

接收邮箱

Time

发送时间

System

发送系统模块

云仓

Msgbody

消息体

Text

文本消息内容

Noticemsg

站内信消息内容

Wxmsg

微信消息内容

Appmsg

APP消息内容

Immsg

IM消息内容

Smsmsg

短信消息内容

标签->值数组,供短信模板使用

项目结构

消息接口API(msg_api)

1) 负责接收业务系统发送消息请求,将消息写到消息队列中;

2) 提供接口供业务系统查询,如查询用户的站内信消息列表、查询验证码是否正确等;

3) 提供数据接口供管理平台使用,如配置信息发送结点;

短信处理程序(msg_handle_sms)

1) 负责订阅消息,读取消息进行短信发送;

2) 负责验证码的生成处理;

3) 数据操作调用消息接口API;

4) 通知消息需要读取配置信息决定当前消息发送或丢弃;

邮件处理程序(msg_handle_email)

1) 负责订阅消息,读取消息进行邮件发送;

2) 数据操作调用消息接口API;

3) 通知消息需要读取配置信息决定当前消息发送或丢弃;

站内信处理程序(msg_handle_notice)

1) 负责订阅消息,读取消息进行通知;

2) 通知消息需要读取配置信息决定当前消息发送或丢弃;

3) 数据操作调用消息接口API;

数据库

1) 使用一个消息数据库;

2) 数据库表分为短信模块、站内信模块、IM模块(暂不做)、通知信息配置模块;

转载于:https://www.cnblogs.com/assion/p/7741562.html

最近重构公司消息服务的架构设计相关推荐

  1. pb 执行存储过程带参数_PB级海量数据服务平台架构设计实践

    基于PB级海量数据实现数据服务平台,需要从各个不同的角度去权衡,主要包括实践背景.技术选型.架构设计,我们基于这三个方面进行了架构实践,下面分别从这三个方面进行详细分析讨论: 实践背景 该数据服务平台 ...

  2. 【数据分发服务DDS】软件定义汽车【二】- 面向服务的架构设计

    引言 上一篇文章主要介绍了电子电气架构.车载操作系统.基础软件平台等之间的关系,以及软件定义汽车的基本概念,本篇将继续深入,重点阐述三个问题: 智能电动汽车软件范畴 软件+硬件升级的基础 面向服务的软 ...

  3. 数据传递型情景下事件机制与消息机制的架构设计剖析(目录)

    目录 数据传递型情景下事件机制与消息机制的架构设计剖析(一) 转载于:https://www.cnblogs.com/hailan/p/3616766.html

  4. 阿里P8架构师谈:从单体架构、到SOA、再到微服务的架构设计详解

    本文涉及的内容以及知识点如下: 1.单体架构 2.单体架构的拆分 3.SOA与微服务的区别 4.微服务的优缺点 5.微服务的消息 6.服务集成 7.数据的去中心化 单体架构 Web应用程序发展的早期, ...

  5. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现 (转载)

    原文链接 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用,数据库使用MySQL.这个MOBA类游戏是笔者在学习时 ...

  6. 从单体架构、到SOA、再到微服务的架构设计详解

    本文涉及的内容以及知识点如下: 单体架构 单体架构的拆分 SOA与微服务的区别 微服务的优缺点 微服务的消息 服务集成 数据的去中心化 单体架构 Web应用程序发展的早期,大部分web工程是将所有的功 ...

  7. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)

    一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者 ...

  8. 阿里双十一微服务改造—架构设计

    随着我互联网需求的压力逐渐增长,同时基础设施的不断完善,系统架构的微服务改造被正式提上日程.从微服务改造的目标架构蓝图设计开始讨论,架构组进行了整整两天的激烈讨论,明确了很多的业务边界.在此过程中我学 ...

  9. 谈一款MOBA类游戏的服务端架构设计

    一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者 ...

最新文章

  1. 用 C 语言开发一门编程语言 — 语法解析器
  2. mac brew 安装
  3. nimbus java_Java程序设置界面为Nimbus风格x
  4. 读取无线手柄数据_《宇宙机器人》×PS5手柄使用体验:登月级进化
  5. tomcat日志,用户以及启动时的一些问题
  6. mysql查询结果作为附件_python3+mysql查询数据并通过邮件群发excel附件
  7. Vue:axios中POST请求传参问题
  8. Caffe傻瓜系列(7):solver优化方法
  9. 新手抖音直播需要什么设备;看完让你少花冤枉钱。
  10. 系统分析师 VS 系统架构设计师,哪个证书含金量比较高?
  11. 好用的万年历API推荐
  12. java制作仿win7计算器之二完结篇
  13. 技术分享 | MySQL:caching_sha2_password 快速问答
  14. 图像分割论文 “RANet : Region Attention Network for Semantic Segmentation”
  15. 欧洲赢麻了!互联网巨头被迫拆围墙;git常用命令速查;Diffusion扩散模型实例教程集;高效C++机器学习库;前沿论文 | ShowMeAI资讯日报
  16. 解决发送push的emoji表情的实用方案
  17. 到底还有没有月薪3万以下的程序员?程序员工资真的这么高!
  18. 编写一个c语言 输入abc 输出最大数,C语言 输入abc,求最大数
  19. ping ip和端口
  20. 【论文】b站 - 读论文的麦小哲 学习笔记

热门文章

  1. 数字的处理 :小数点四舍五入
  2. Android中使用am命令实现在命令行启动程序详解
  3. Ajax实现原理详解
  4. JS函数addEventListener的浏览器差异性封装
  5. [其它] - 为什么中国的程序员技术偏低
  6. 从DataTable导出Excel,并下载,删除Excel进程。
  7. 从蚂蚁金服实践入手,带你深入了解 Service Mesh
  8. MySQL5.7 group by新特性,报错1055
  9. jsonArray与 jsonObject区别与js取值
  10. Redis入门到精通-Redis数据类型