zoukankan      html  css  js  c++  java
  • 最近重构公司消息服务的架构设计

    目标

    研发一套独立的消息系统,此系统进行集中配置管理供各业务系统使用,用于支撑站内信、短信通知、短信验证码、邮件、微信消息、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模块(暂不做)、通知信息配置模块;

  • 相关阅读:
    PHP js使用ajax异步处理方式请求PHP,解决数组中文乱码
    PHP Apache服务配置
    opencv高斯背景建模
    Opencv,腐蚀,膨胀,轮廓检测,轮廓外接多边形
    opencv删除二值图中较小的噪点色块
    opencv图像操作
    opencv统计二值图黑白像素个数
    JAVA常用工具类
    Netty4 学习笔记之四: Netty HTTP服务的实现
    分享一些JAVA相关资源
  • 原文地址:https://www.cnblogs.com/assion/p/7741562.html
Copyright © 2011-2022 走看看