你說(shuō)的下游是 Upstream 吧?
工作中,有一些術(shù)語(yǔ)比較容易混淆,聊半天,最后發(fā)現(xiàn)雙方對(duì)術(shù)語(yǔ)的理解不一致。這個(gè)時(shí)候用英文原本的表達(dá)或者換一種方式來(lái)表述能讓溝通更順暢。
像我們經(jīng)常說(shuō)的『上下游』便是經(jīng)常發(fā)生混淆的一對(duì)名詞。
以前,我經(jīng)常說(shuō)『梳理一下我們依賴的下游』,后來(lái)發(fā)現(xiàn)這種說(shuō)法是錯(cuò)誤的。正確的是:梳理一下我們依賴的上游。
是不是聽(tīng)著很奇怪?
可以這樣理解,越是上游的地方,越是離源頭更近的地方,源頭就是指數(shù)據(jù)源。
對(duì)于互聯(lián)網(wǎng)服務(wù)用戶而言,數(shù)據(jù)沿著源頭、上游、下游,一直流到用戶的設(shè)備上。源頭可能是數(shù)據(jù)庫(kù),上游可能是后端服務(wù)、下游可能是 gateway。對(duì)于某個(gè)微服務(wù)的 owner 也一樣:你的服務(wù)做的事就是從上游獲取某項(xiàng)數(shù)據(jù),然后經(jīng)過(guò)一些加工處理,吐出加工后的數(shù)據(jù),數(shù)據(jù)會(huì)流向下游。
有人可能會(huì)反問(wèn):服務(wù)之間的交互,一問(wèn)一答,請(qǐng)求和響應(yīng)都有數(shù)據(jù),那流向該怎么算?其實(shí)這里的數(shù)據(jù)是指響應(yīng)數(shù)據(jù),是終端用戶最終需要的數(shù)據(jù):可能是短視頻,可能是公眾號(hào)文章。
我們記住這張圖就可以了:
上面這張圖來(lái)自這篇文章[1],文中介紹了好幾種 downstream/upstream,但對(duì)于后端研發(fā)來(lái)說(shuō),弄清服務(wù)調(diào)用間的上下游就足夠了。
實(shí)在不好區(qū)分的,想想 nginx 中的 upstream 配的是什么地址能就回憶起來(lái)。
最后,在有可能要頻繁說(shuō)起上下游的場(chǎng)合,一定要先和大家約定好名詞的定義。這時(shí)用 upstream、downstream 可能會(huì)更好一些;或者改叫調(diào)用方、被調(diào)用方也很清晰。
參考資料
[1]文章: https://reflectoring.io/upstream-downstream?