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