最近重構公司消息服務的架構設計

目標數據庫

研發一套獨立的消息系統,此係統進行集中配置管理供各業務系統使用,用於支撐站內信、短信通知、短信驗證碼、郵件、微信消息、APP消息、IM等消息形式。api

 

架構數組

 

 

1) 基於消息隊列採用發佈、訂閱模式。消息的生產者爲對外的消息接口,接收業務系統消息後將消息寫入到消息隊列指定的topic,訂閱者對消息進行處理並行的發送消息。微信

2) 全部通知消息定義惟一「消息ID」來標識消息類型。架構

3) 通知消息由各消息模塊(短信、郵件、站內信、微信、APP)本身負責本消息的發送,去讀取消息節點配置信息,根據當前的消息ID判斷本身是否須要發送消息,是則發送不然丟棄。app

4) 消息體,消息體採用JSON報文格式,方便各系統之間對接。ui

 

消息數據定義spa

 

 

 

{blog

  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模塊(暫不作)、通知信息配置模塊;

相關文章
相關標籤/搜索