掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為通榆企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,通榆網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
消息中心是一個(gè)集中管理、分發(fā)通知和提醒的平臺,可以讓用戶或系統(tǒng)消息更方便、快捷的觸達(dá)給指定用戶或者系統(tǒng)。并且可以幫助用戶或系統(tǒng)更好地管理消息的生命周期,屏蔽不同消息渠道差異與技術(shù)差異,從而提升效率與體驗(yàn),降低維護(hù)成本。
應(yīng)用架構(gòu)這里就不展示了,因?yàn)槭腔诩夹g(shù)部中間件團(tuán)隊(duì)java應(yīng)用(nvwa)工廠生成標(biāo)準(zhǔn)COLA的多模塊項(xiàng)目模板應(yīng)用。
消息通知的流程設(shè)計(jì),在各個(gè)業(yè)務(wù)線中通過消息中心提供的接口方法,將不同場景下的消息內(nèi)容提交到消息中心,消息中心進(jìn)行統(tǒng)一維護(hù)管理,并根據(jù)消息的來源和去向,適配相應(yīng)的推送邏輯:
在整個(gè)流程中涉及到的模塊比較多,狀態(tài)的流轉(zhuǎn)也很復(fù)雜,但是通過消息中心進(jìn)行統(tǒng)一標(biāo)準(zhǔn)管理和流入流出的跟蹤,也可以提供清晰的生命周期監(jiān)控和維護(hù)。大部分的消息通知機(jī)制都可以容忍一定的延遲性,所以消息中心完全可以解耦各個(gè)流程,引入MQ隊(duì)列或者異步機(jī)制,業(yè)務(wù)方只需要將請求發(fā)送到消息中心,之后由消息中心統(tǒng)一調(diào)度和管理即可。
飛書側(cè)機(jī)器人回調(diào)地址只能填寫一個(gè),歷史的應(yīng)用已經(jīng)對接過飛書平臺進(jìn)行發(fā)消息,對于系統(tǒng)增量消息想接入消息中心應(yīng)該怎么解決,在不影響老系統(tǒng)增量消息接入消息中心的又不影響歷史消息回調(diào)的情況下,消息中心采用了轉(zhuǎn)發(fā)的方式去兼容歷史的消息回調(diào)。下面是飛書回調(diào)流程:
動(dòng)態(tài)消息內(nèi)容 和 靜態(tài)消息內(nèi)容 指的是消息(如郵件、短信、通知等)中的內(nèi)容。
靜態(tài)消息內(nèi)容是指在發(fā)送消息時(shí)事先準(zhǔn)備好的、不會發(fā)生變化的消息內(nèi)容,比如營銷郵件、歡迎短信、通知公告等。這些內(nèi)容在每次發(fā)送時(shí)都是一樣的,不會根據(jù)接收者的情況、時(shí)間等因素而發(fā)生變化。
而動(dòng)態(tài)消息內(nèi)容則會根據(jù)接收者的情況、時(shí)間等因素而實(shí)時(shí)生成,以提供更好的個(gè)性化服務(wù)。動(dòng)態(tài)消息內(nèi)容的例子包括訂單確認(rèn)郵件、賬戶余額提醒短信、預(yù)約成功通知等。這些消息內(nèi)容需要根據(jù)接收者的訂單信息、賬戶信息、預(yù)約信息等動(dòng)態(tài)生成。
總之,靜態(tài)消息內(nèi)容是在發(fā)送消息前準(zhǔn)備好的、不會發(fā)生變化的消息內(nèi)容,而動(dòng)態(tài)消息內(nèi)容是根據(jù)接收者的情況、時(shí)間等因素而實(shí)時(shí)生成的消息內(nèi)容,以提供更好的個(gè)性化服務(wù)。
目前跟業(yè)務(wù)系統(tǒng)對接的消息內(nèi)容,99%都屬于靜態(tài)消息內(nèi)容,相對于那種較復(fù)雜的動(dòng)態(tài)消息內(nèi)容(圖一折線圖,圖二動(dòng)態(tài)表單等動(dòng)態(tài)數(shù)據(jù))去做動(dòng)態(tài)數(shù)據(jù)渲染。消息中心對于動(dòng)態(tài)內(nèi)容消息渲染,解決方案是在模板功能里面抽象了一層消息內(nèi)容解析引擎,模板引擎采用的是Apache 軟件基金會下的一個(gè)開源 Java 模板引擎框架(VelocityEngine)該引擎用于生成 HTML、XML、JSON、CSV 等文件格式的文本內(nèi)容。功能非常強(qiáng)大,感興趣的同學(xué)可以去了解一下。下面拿個(gè)簡單動(dòng)態(tài)消息模板舉例:
a. API接口組裝消息體
{
"reachType": 2,
"templateCode": "*******",
"sendTime": 1687163457335,
"reachList": [
{
"contentParamList": [
{
"key": "addCourseCount", // 動(dòng)態(tài)參數(shù)[新增課程總數(shù) (30)]
"value": "30"
},
{
"key": "lastWeekNewCourseCount", // 動(dòng)態(tài)參數(shù)[上周上新課程數(shù)量 (20)]
"value": "20"
},
{
"key": "dataList", // 動(dòng)態(tài)參數(shù),數(shù)據(jù)格式用戶可自定義
"value": "[{\"courseName\":\"測試課程內(nèi)容1\",\"courseUrl\":\"https://t1-iwork-rdc.shizhuang-inc.net/rdc/desk\"},{\"courseName\":\"測試課程內(nèi)容2\",\"courseUrl\":\"https://t1-iwork-rdc.shizhuang-inc.net/rdc/desk\"}] "
}
],
"receiverId": "*******"
}
]
}
b. 使用VelocityEngine語法解析
#set($myList=$dataList) // api接口傳過來的參數(shù)
#set($result = '')
#foreach($item in $myList) // 拼接消息內(nèi)容
#set($result = $result+'['+$item.courseName+']'+'('+$item.courseUrl+')'+'\n')
#end
#set($growthCnotallow="**新人成長(10)**\n$result") // 輸出最終消息內(nèi)容
c. 動(dòng)態(tài)渲染輸出
業(yè)務(wù)場景:在一個(gè)陽光明媚的早上,業(yè)務(wù)同學(xué)用潮人研習(xí)社的機(jī)器人給公司用戶推送了chatgpt的學(xué)習(xí)先關(guān)的內(nèi)容,消息推送觸達(dá)竟然花費(fèi)了一個(gè)1多小時(shí)。
問題分析:沒辦法,做為技術(shù)boy,只能埋頭去尋找根因,主要有以下幾點(diǎn)
優(yōu)化思路:
針對上面2個(gè)問題的具體分析,主要是對問題2做了對應(yīng)的優(yōu)化,優(yōu)化思路主要是分治思想,針對大批量推送消息場景對用戶進(jìn)行分組,充分利用操作系統(tǒng)的多核優(yōu)勢。把分組的任務(wù)提交到異步消息隊(duì)列,通過自產(chǎn)自消的方式來提升消息觸達(dá)效率。
結(jié)果:
基于上面的思路去優(yōu)化并測試,效果是異常的明顯,之前推送消息需花費(fèi)1個(gè)多小時(shí),現(xiàn)在10分鐘(這里的觸達(dá)時(shí)效瓶頸主要是飛書側(cè),飛書對消息推送接口做了限流(1s并發(fā)只能50且1min上限1000))就可以全部觸達(dá)了。
當(dāng)完成整個(gè)消息中心的設(shè)計(jì)后,要聽取他人意見,學(xué)會聆聽,因?yàn)橥瓿蛇@件事其實(shí)并不難。另外在網(wǎng)上也可以找到很多開源產(chǎn)品可借鑒,但是完全拿來主義不一定適合我們自己業(yè)務(wù)。所以需要跟PM、同事討論,聽取意見。再者消息中心未來是需要長期與其它部門及產(chǎn)品協(xié)調(diào)溝通的,如果一開始在做的時(shí)候就沒有與其他人去交流或技術(shù)方案討論,那么后期由于業(yè)務(wù)拓展,很有可能整體架構(gòu)很容易被推翻重構(gòu)。
對于消息中心來說,根據(jù)實(shí)際業(yè)務(wù)線的豐富度,相應(yīng)應(yīng)用場景也會更加復(fù)雜,所以我們在設(shè)計(jì)消息的落地場景時(shí),對于不同場景的適用性挑戰(zhàn)也會增大。但殊途同歸,基于降本增效去做更多思考,總歸會讓價(jià)值落地。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流