做中臺產(chǎn)品的時候,會涉及一些技術(shù)細(xì)節(jié)照藻。「通知」和「監(jiān)聽」是其中比較普遍的一個情況汗侵。當(dāng)業(yè)務(wù)層與中后臺進(jìn)行數(shù)據(jù)交互的時候幸缕,后端服務(wù)應(yīng)當(dāng)將交互結(jié)果令業(yè)務(wù)層獲悉。而獲悉結(jié)果晰韵,存在兩種方式:
- 中后臺主動通知
- 業(yè)務(wù)層主動監(jiān)聽
那么這兩者的區(qū)別在哪里发乔?就這個問題,我詢問了某后端開發(fā)超哥雪猪。
超哥曰:通知別人栏尚,相當(dāng)于是推消息;其他服務(wù)監(jiān)聽只恨,相當(dāng)于拉消息译仗。
我:get 和 push。坤次。。么斥赋。缰猴。。
從超哥的回答就看的出疤剑,這兩件實現(xiàn)方式的區(qū)別在于:實施主體不同滑绒,關(guān)心內(nèi)容不同。那如果我們更近一步來問:在兩種方式都可以達(dá)成目的的情況下隘膘,我們以什么標(biāo)準(zhǔn)來取舍這兩種方案疑故?
一般,我們會從可用性弯菊、中后臺服務(wù)解耦必要性以及系統(tǒng)性能的角度考慮:比如說纵势,如果當(dāng)前公司主要的核心是做一個“小平臺”,主要保證系統(tǒng)穩(wěn)健性,比較偏向與業(yè)務(wù)系統(tǒng)的解耦钦铁,讓外部自行抓取結(jié)果——那么技術(shù)人員極有可能采取讓外部系統(tǒng)監(jiān)聽的方式來獲取結(jié)果软舌。
小結(jié)一下:
- 主動通知:就是將各個業(yè)務(wù)的入口把握在自己手中,需要關(guān)心各條業(yè)務(wù)線的業(yè)務(wù)規(guī)則牛曹;
- 他人監(jiān)聽:只需要把固定業(yè)務(wù)放到消息或者DB中佛点,至于誰用 ,并不關(guān)心黎比。出現(xiàn)業(yè)務(wù)差錯的情況超营,也不需要中臺系統(tǒng)來排查。