你說的下游是 upstream 吧?

工作中,有一些術語比較容易混淆,聊半天,最後發現雙方對術語的理解不一致。這個時候用英文原本的表達或者換一種方式來表述能讓溝通更順暢。

像我們經常說的『上下游』便是經常發生混淆的一對名詞。

以前,我經常說『梳理一下我們依賴的下游』,後來發現這種說法是錯誤的。正確的是:梳理一下我們依賴的上游。

是不是聽着很奇怪?

可以這樣理解,越是上游的地方,越是離源頭更近的地方,源頭就是指數據源。

對於互聯網服務用戶而言,數據沿着源頭、上游、下游,一直流到用戶的設備上。源頭可能是數據庫,上游可能是後端服務、下游可能是 gateway。對於某個微服務的 owner 也一樣:你的服務做的事就是從上游獲取某項數據,然後經過一些加工處理,吐出加工後的數據,數據會流向下游。

有人可能會反問:服務之間的交互,一問一答,請求和響應都有數據,那流向該怎麼算?其實這裏的數據是指響應數據,是終端用戶最終需要的數據:可能是短視頻,可能是公衆號文章。

我們記住這張圖就可以了:

上面這張圖來自這篇文章 [1],文中介紹了好幾種 downstream/upstream,但對於後端研發來說,弄清服務調用間的上下游就足夠了。

實在不好區分的,想想 nginx 中的 upstream 配的是什麼地址能就回憶起來。

最後,在有可能要頻繁說起上下游的場合,一定要先和大家約定好名詞的定義。這時用 upstream、downstream 可能會更好一些;或者改叫調用方、被調用方也很清晰。

參考資料

[1]

文章: https://reflectoring.io/upstream-downstream

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/wDeIbYVtwOgU8PHPD6wm9A