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


目標

研發一套獨立的消息系統,此系統進行集中配置管理供各業務系統使用,用於支撐站內信、短信通知、短信驗證碼、郵件、微信消息、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模塊(暫不做)、通知信息配置模塊;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM