RPC 是Remote Procedure Call的縮寫,譯爲遠程過程調用。是一個計算機通信協議。
爲什麼需要遠程調用
爲了提升飯店的服務能力,飯店從一開始只有一個負責所有事情的廚師發展成有廚師、切菜師、備菜師等多個角色。
在飯店只有一個廚師的時候,廚師想要做出一道美味的番茄炒蛋的時候,他需要自己洗番茄、切番茄、打雞蛋、炒菜。整個過程不需要其他人蔘與自己就完全可以完成了。這就是古老的集中式應用中,一臺單體計算機就可以搞定所有事情了。
製作番茄炒蛋{
廚師->洗菜->切菜->炒菜
}
隨着飯店發展,需要明確分工,讓專業的人負責專業的事兒。所以,整個做菜過程中不再只有廚師參與了。需要有多個角色,備菜師傅負責準備番茄和雞蛋、切菜師傅負責切菜、廚師只要負責炒菜就行了。
但是,隨着分工明確,製作番茄炒蛋的過程不再是隻有一個人參與的過程了。這個過程中需要多方協作。廚師準備炒菜之前,需要先通知備菜師傅和切菜師傅,前序工作準備好之後才能進行炒菜。
製作番茄炒蛋{
備菜師->洗菜
切菜師->切菜
廚師->炒菜
}
這種情況下,廚師就要依賴很多外人來參與這個炒菜工作。而他在通知備菜師幫他洗菜,通知切菜師傅幫他切菜的時候,這個過程就是遠程過程調用。
大多數情況下,一般是服務員直接到廚房下單,然後後廚有一個人員分別把菜單分發給備菜師、切菜師和廚師。
這個過程就和計算機系統很像了。如今的大型網站都是分佈式部署的。拿一個下單流程來說,可能涉及到物流、支付、庫存、紅包等多個系統後,而多個系統又是分別部署在不同的機器上的,分別由不同的團隊負責。而要想實現下單流程,就需要用到遠程調用。
下單{
庫存->減少庫存
支付->扣款
紅包->紅包抵用
物流->生成物流信息
}