0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊消息中心的設(shè)計(jì)與實(shí)現(xiàn)邏輯方法

OSC開(kāi)源社區(qū) ? 來(lái)源:知了一笑 ? 2023-12-28 17:21 ? 次閱讀

厭煩被消息打擾,又怕突然間的安靜;

一、業(yè)務(wù)背景

微服務(wù)的架構(gòu)體系中,會(huì)存在很多基礎(chǔ)服務(wù),提供一些大部分服務(wù)都可能需要的能力,比如文件管理、MQ隊(duì)列、緩存機(jī)制、消息中心等等,這些服務(wù)需要提供各種可以復(fù)用的方法或者接口,以便其他業(yè)務(wù)服務(wù)可以快速調(diào)用;下面來(lái)看看消息通知的原理:

81f56ed8-a560-11ee-8b88-92fbcf53809c.png

這里的消息不同于MQ隊(duì)列,是指業(yè)務(wù)側(cè)的通知機(jī)制,例如短信、郵件、系統(tǒng)消息等,在業(yè)務(wù)層面的需求很多,通常會(huì)封裝單獨(dú)的消息中心提供通知機(jī)制;

從流程上面看,消息通知是典型的生產(chǎn)-消費(fèi)模式,業(yè)務(wù)側(cè)不斷的生產(chǎn)消息,消息中心在接收之后進(jìn)行消費(fèi),把通知推送到相應(yīng)的渠道中,很顯然這種邏輯具備很高的復(fù)用性。

二、消息通知

1、流程管理

消息通知的流程設(shè)計(jì),在各個(gè)業(yè)務(wù)線(xiàn)中通過(guò)消息中心提供的接口方法,將不同場(chǎng)景下的消息內(nèi)容提交到消息中心,消息中心進(jìn)行統(tǒng)一維護(hù)管理,并根據(jù)消息的來(lái)源和去向,適配相應(yīng)的推送邏輯:

82003534-a560-11ee-8b88-92fbcf53809c.png

消息生產(chǎn):涉及到的場(chǎng)景很多,比如活動(dòng)、營(yíng)銷(xiāo)機(jī)制、系統(tǒng)通知、業(yè)務(wù)流轉(zhuǎn)、過(guò)期提醒等;

消息管理:對(duì)預(yù)發(fā)送消息的結(jié)構(gòu)和參數(shù)進(jìn)行校驗(yàn),并創(chuàng)建消息推送的任務(wù),維護(hù)任務(wù)級(jí)別的推送管理,跟蹤消息的狀態(tài)周期;

消息消費(fèi):基于消息任務(wù)的結(jié)構(gòu),構(gòu)建消息推送的主體內(nèi)容,并對(duì)接多個(gè)發(fā)送渠道,實(shí)現(xiàn)通知的高效觸達(dá);

定時(shí)任務(wù):消息可以直接即時(shí)推送,但如果是夜間定時(shí)任務(wù)觸發(fā),則要考慮推送延遲問(wèn)題,將消息放在指定時(shí)段投遞;

渠道對(duì)接:通常不同的渠道意味著不同的場(chǎng)景,例如監(jiān)控推送釘釘,活動(dòng)一般推送微信,賬戶(hù)變動(dòng)發(fā)郵件,營(yíng)銷(xiāo)走短信,業(yè)務(wù)則應(yīng)用內(nèi)通知;

在整個(gè)流程中涉及到的模塊比較多,狀態(tài)的流轉(zhuǎn)也很復(fù)雜,但是通過(guò)消息中心進(jìn)行統(tǒng)一標(biāo)準(zhǔn)管理和流入流出的跟蹤,也可以提供清晰的生命周期監(jiān)控和維護(hù);

2、流程時(shí)序

在整個(gè)消息通知鏈路中,在不同的流轉(zhuǎn)節(jié)點(diǎn)中,無(wú)不涉及狀態(tài)的變化(即from.to狀態(tài)),這樣可以構(gòu)成整個(gè)生命周期的視圖:

82099be2-a560-11ee-8b88-92fbcf53809c.png

初始化:業(yè)務(wù)方構(gòu)建簡(jiǎn)單的消息結(jié)構(gòu),請(qǐng)求發(fā)送到消息中心后,初始化一個(gè)消息任務(wù);

任務(wù)化:對(duì)消息發(fā)送請(qǐng)求進(jìn)行校驗(yàn),并將消息轉(zhuǎn)換成一個(gè)標(biāo)準(zhǔn)的推送任務(wù)結(jié)構(gòu);

推送中:根據(jù)任務(wù)推送的時(shí)間周期類(lèi)型,將任務(wù)構(gòu)建成不同渠道的通知主體,從而進(jìn)行渠道消息推送;

已完成:根據(jù)消息在渠道推送的狀態(tài)回調(diào),更新消息中心的任務(wù)完成狀態(tài),或者失敗重試;

大部分的消息通知機(jī)制都可以容忍一定的延遲性,所以消息中心完全可以解耦各個(gè)流程,引入MQ隊(duì)列或者異步機(jī)制,業(yè)務(wù)方只需要將請(qǐng)求發(fā)送到消息中心,之后由消息中心統(tǒng)一調(diào)度和管理即可;

3、結(jié)構(gòu)設(shè)計(jì)

這里根據(jù)系統(tǒng)的實(shí)現(xiàn)過(guò)程和經(jīng)驗(yàn),給出一個(gè)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)參考,用來(lái)對(duì)業(yè)務(wù)場(chǎng)景做簡(jiǎn)單的維度描述:

823be12e-a560-11ee-8b88-92fbcf53809c.png

消息模板:定義通知的主體結(jié)構(gòu),基于消息的參數(shù)模型,構(gòu)建推送的消息內(nèi)容;

消息任務(wù):消息中心管理和維護(hù)的主體結(jié)構(gòu),以任務(wù)的模式維護(hù)消息從生產(chǎn)到推送完成的整個(gè)狀態(tài)周期;

場(chǎng)景記錄:消息最終推送出去的內(nèi)容和場(chǎng)景分類(lèi),也可以簡(jiǎn)單的理解為不同渠道的投遞記錄;

交互消息:強(qiáng)調(diào)消息在接收方是否觸達(dá)并且對(duì)消息產(chǎn)生了交互行為,例如會(huì)話(huà),郵件回復(fù),狀態(tài)關(guān)聯(lián)等;

三、實(shí)踐總結(jié)

最后還是站在技術(shù)實(shí)現(xiàn)的角度,總結(jié)一下消息通知機(jī)制中的一些關(guān)鍵問(wèn)題:

生產(chǎn)消費(fèi):消息生產(chǎn)之后寫(xiě)入消息中心的存儲(chǔ)容器,之后進(jìn)行消費(fèi)流程的管理,是業(yè)務(wù)解耦的常用手段;

任務(wù)管理:以任務(wù)的模式進(jìn)行消息推送的調(diào)度,通過(guò)任務(wù)狀態(tài)的變化和控制,實(shí)現(xiàn)生命周期的管理;

狀態(tài)機(jī):描述消息的流轉(zhuǎn)節(jié)點(diǎn)和狀態(tài),在不同的事件中觸發(fā)不同的狀態(tài)切換和轉(zhuǎn)移,并在狀態(tài)變化后銜接各種業(yè)務(wù)動(dòng)作;

渠道對(duì)接:通常消息推送的渠道多是第三方平臺(tái),所以在消息中心會(huì)接入諸多的渠道,例如微信、釘釘、短信等;

基礎(chǔ)封裝:作為分布式系統(tǒng)中的基礎(chǔ)功能,在封裝消息管理功能時(shí),要考慮一定的復(fù)用性和流程的可視化呈現(xiàn);

消息的本質(zhì)是信息的觸達(dá)和傳遞,但是過(guò)多的消息通知也容易讓用戶(hù)產(chǎn)生厭倦心態(tài),所以消息內(nèi)容的簡(jiǎn)潔明確,推送的間隔時(shí)段以及閱讀提醒,在產(chǎn)品具體的實(shí)現(xiàn)上需要極為用心,從而讓消息在業(yè)務(wù)體系中發(fā)揮更大的價(jià)值。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:聊聊消息中心的設(shè)計(jì)與實(shí)現(xiàn)邏輯

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    模擬IC設(shè)計(jì)原理圖1:邏輯電路是如何通過(guò)MOS管實(shí)現(xiàn)

    今天來(lái)聊聊我們常用的邏輯電路是如何通過(guò)MOS管實(shí)現(xiàn)的。
    的頭像 發(fā)表于 10-30 15:19 ?2933次閱讀
    模擬IC設(shè)計(jì)原理圖1:<b class='flag-5'>邏輯</b>電路是如何通過(guò)MOS管<b class='flag-5'>實(shí)現(xiàn)</b>的

    【經(jīng)驗(yàn)分享】PET符合電路邏輯實(shí)現(xiàn)問(wèn)題

    可以自行設(shè)定。有了這樣的約束之后,就算某個(gè)時(shí)刻模塊0和模塊10同時(shí)探測(cè)到了事件,那么我們也不能判斷這對(duì)事件屬于符合事件了。有了上述具體化的說(shuō)明,那么具體邏輯實(shí)現(xiàn)的時(shí)候就非常簡(jiǎn)單了,具體實(shí)現(xiàn)
    發(fā)表于 01-13 15:32

    邏輯電路的計(jì)算方法

    來(lái)源:互聯(lián)網(wǎng)今天我們來(lái)聊聊邏輯電路的計(jì)算,跟著小編一起來(lái)學(xué)習(xí)一下吧! 邏輯常量與變量:邏輯常量只有兩個(gè),即0和1,用來(lái)表示兩個(gè)對(duì)立的邏輯狀態(tài)
    發(fā)表于 10-22 16:37

    有什么方法可以實(shí)現(xiàn)邏輯分析儀的實(shí)時(shí)存儲(chǔ)嗎?

    有什么方法可以實(shí)現(xiàn)邏輯分析儀的實(shí)時(shí)存儲(chǔ)嗎?
    發(fā)表于 05-06 07:39

    聊聊存儲(chǔ)器的相關(guān)知識(shí)

    虛擬地址物理地址等眾多地址及MMU相關(guān)知識(shí)先聊聊存儲(chǔ)器STM32單片機(jī)存儲(chǔ)器關(guān)于編譯器生成的文件數(shù)據(jù)在存儲(chǔ)器上的存儲(chǔ)結(jié)構(gòu)物理地址、虛擬地址、線(xiàn)性地址和邏輯地址物理地址虛擬地址邏輯地址線(xiàn)性地址這些地址
    發(fā)表于 02-11 07:51

    數(shù)字系統(tǒng)的基本算法與邏輯電路實(shí)現(xiàn)

    數(shù)字系統(tǒng)的基本算法與邏輯電路實(shí)現(xiàn):本章主要介紹數(shù)字系統(tǒng)的基本算法設(shè)計(jì)及對(duì)應(yīng)的邏輯電路的實(shí)現(xiàn)方法。算法設(shè)計(jì)中主要考慮的因素1.
    發(fā)表于 09-01 09:04 ?0次下載

    基于PLD芯片的時(shí)序邏輯設(shè)計(jì)與實(shí)現(xiàn)

    基于PLD芯片的時(shí)序邏輯設(shè)計(jì)與實(shí)現(xiàn):原理圖輸入設(shè)計(jì)直觀(guān)、便捷、操作靈活;1-1、原理圖設(shè)計(jì)方法簡(jiǎn)介QuartusII已包含了數(shù)字電路的基本邏輯元件庫(kù)(各類(lèi)
    發(fā)表于 10-29 22:03 ?0次下載

    邏輯設(shè)計(jì)中M圖的硬件電路實(shí)現(xiàn)方法

    摘要:給出了基于A S M 圖的數(shù)字集成電路控制器的設(shè)計(jì)的主要電路實(shí)現(xiàn)方法,并給出了目前最常采用的方法——EDA法.關(guān)鍵詞: A S M 圖; 邏輯設(shè)計(jì); E DA; On e&nbs
    發(fā)表于 04-26 11:25 ?14次下載

    實(shí)現(xiàn)拆分大組合邏輯方法

    圖1是很多為了提高系統(tǒng)時(shí)鐘采用的拆分大組合邏輯方法,但是沒(méi)有提供具體如何拆分的實(shí)例。我覺(jué)得實(shí)例才是重要的。但我不明白在寫(xiě)代碼時(shí),如何知道這樣寫(xiě)會(huì)被綜合成一個(gè)很
    發(fā)表于 06-05 11:58 ?1032次閱讀
    <b class='flag-5'>實(shí)現(xiàn)</b>拆分大組合<b class='flag-5'>邏輯</b>的<b class='flag-5'>方法</b>

    3相3級(jí)逆變器實(shí)現(xiàn)中心對(duì)齊SVPWM的方法

    摘要 空間矢量脈寬調(diào)制(SVPWM)廣泛用于3相逆變器控制系統(tǒng)。SVPWM MCU實(shí)現(xiàn)的最有效方法中心對(duì)齊PWM,因?yàn)镸CU中的PWM模塊可輕松產(chǎn)生中心對(duì)齊PWM。本文將討論SVPW
    發(fā)表于 11-16 16:12 ?11次下載
    3相3級(jí)逆變器<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>中心</b>對(duì)齊SVPWM的<b class='flag-5'>方法</b>

    如何利用可編程邏輯實(shí)現(xiàn)數(shù)據(jù)中心互連 DCI互連盒架構(gòu)解讀

    隨著實(shí)施基于云的服務(wù)和機(jī)器到機(jī)器通信所產(chǎn)生的數(shù)據(jù)呈指數(shù)級(jí)增長(zhǎng),數(shù)據(jù)中心面臨重重挑戰(zhàn)。如何使可編程邏輯實(shí)現(xiàn)數(shù)據(jù)中心互連至關(guān)重要。
    發(fā)表于 03-12 15:47 ?1017次閱讀

    聊聊消息中心的設(shè)計(jì)與實(shí)現(xiàn)

    微服務(wù)的架構(gòu)體系中,會(huì)存在很多基礎(chǔ)服務(wù),提供一些大部分服務(wù)都可能需要的能力,比如文件管理、MQ隊(duì)列、緩存機(jī)制、消息中心等等
    的頭像 發(fā)表于 05-29 15:03 ?1597次閱讀
    <b class='flag-5'>聊聊</b>消息<b class='flag-5'>中心</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    如何實(shí)現(xiàn)PLC的自動(dòng)化控制邏輯

    地提高了生產(chǎn)效率和設(shè)備運(yùn)行的穩(wěn)定性。本文將詳細(xì)介紹如何實(shí)現(xiàn)PLC的自動(dòng)化控制邏輯,包括PLC的基本概念、編程工具、邏輯實(shí)現(xiàn)方法以及實(shí)際應(yīng)用案
    的頭像 發(fā)表于 06-15 16:44 ?1035次閱讀

    組合邏輯控制器是用什么實(shí)現(xiàn)

    組合邏輯控制器是一種用于控制和管理復(fù)雜系統(tǒng)中各個(gè)組件之間交互的邏輯設(shè)備。它可以應(yīng)用于各種領(lǐng)域,如計(jì)算機(jī)科學(xué)、通信、自動(dòng)化控制等。在這篇文章中,我們將詳細(xì)探討組合邏輯控制器的實(shí)現(xiàn)
    的頭像 發(fā)表于 06-30 10:11 ?449次閱讀

    組合邏輯控制器的基本概念、實(shí)現(xiàn)原理及設(shè)計(jì)方法

    廣泛應(yīng)用于計(jì)算機(jī)、通信、控制等領(lǐng)域。 本文將詳細(xì)介紹組合邏輯控制器的基本概念、實(shí)現(xiàn)原理、設(shè)計(jì)方法、應(yīng)用場(chǎng)景等方面的內(nèi)容,以幫助讀者全面了解組合邏輯控制器。 基本概念 1.1 組合
    的頭像 發(fā)表于 06-30 10:26 ?1377次閱讀