做中臺產品的時候,會涉及一些技術細節?!竿ㄖ购汀副O聽」是其中比較普遍的一個情況。當業務層與中后臺進行數據交互的時候,后端服務應當將交互結果令業務層獲悉。而獲悉結果,存在兩種方式:
- 中后臺主動通知
- 業務層主動監聽
那么這兩者的區別在哪里?就這個問題,我詢問了某后端開發超哥。
超哥曰:通知別人,相當于是推消息;其他服務監聽,相當于拉消息。
我:get 和 push。。。么。。。
從超哥的回答就看的出,這兩件實現方式的區別在于:實施主體不同,關心內容不同。那如果我們更近一步來問:在兩種方式都可以達成目的的情況下,我們以什么標準來取舍這兩種方案?
一般,我們會從可用性、中后臺服務解耦必要性以及系統性能的角度考慮:比如說,如果當前公司主要的核心是做一個“小平臺”,主要保證系統穩健性,比較偏向與業務系統的解耦,讓外部自行抓取結果——那么技術人員極有可能采取讓外部系統監聽的方式來獲取結果。
小結一下:
- 主動通知:就是將各個業務的入口把握在自己手中,需要關心各條業務線的業務規則;
- 他人監聽:只需要把固定業務放到消息或者DB中,至于誰用 ,并不關心。出現業務差錯的情況,也不需要中臺系統來排查。