短信服务的设计
?
【前言】
? ? ? ? 之前系統中已經接入短信,由于當時工期比較緊,所以直接在需要的地方(登錄,注冊等)通過Http調用第三方;后來隨著需要發送短信的場景越來越多,對短信進行了抽離做成單獨的服務;下面分享一下在抽離服務時的思路以及遇到的一些坑。
【設計思路】
? ? ? ? ?1.按需要發送短信的本身特點將短信分為兩類:一是有時效性短信(如:登錄,注冊);二是非時效性短信(如:放款成功需要給用戶提醒等)。
? ? ? ? ?2.針對時效性短信,短信服務直接給業務系統提供Http服務,然后直接去調用第三方短信平臺;針對非時效性短信,在短信服務中寫定時任務定時去摟需要發送短信的業務數據,然后去調用第三方短信平臺。
? ? ? ? ?3.短信內容拆分成模板和變量的形式,靈活可擴展。
? ? ? ? ?4.短信路由初步設定在管理后臺可以配置哪個開啟,然后在redis中記錄相應渠道的渠道號,在每次發短信之前去redis中根據渠道號決定調用哪個第三方。
? ? ? ? ?5.表中設定重試次數,防止由于網絡等原因某次發送失敗,同時也可防止由于手機號等出現問題無限重復的發送。
? ? ? ? ?6.定時將待發送的數據表中數據歸檔到歷史表中,防止因數據量過大影響摟數據。
【總結】
? ? ? ? 以上設計可以初步滿足一般發送短信的需求,不過隨著業務變動等以及短信余額不足等出現一些新的挑戰,下一篇會繼續為大家介紹關于自定義短信的實現思路,以及關于短信路由的完善相關設計。
總結
- 上一篇: Java集成openCV实现图片背景切换
- 下一篇: C语言 求平方 求开方