1、RPC (遠程服務調用)
web
經過http,tcp/udp亦或者是其餘什麼網絡協議來調用在不一樣服務上面的方法,就被稱爲Remote Procedure Call。RPC很是簡單,首先就是數據的編碼和解碼,簡單的來講就是一個對象如何去變成二進制在網絡或者存儲設備上傳輸以及從二進制流中解碼出對象。緩存
RPC有不少別人已經寫好的框架,譬如 thrift,web services 等等。網絡
2、RPC與RMI區別負載均衡
RMI全稱是Remote Method Invocation ,實現了在不一樣JVM實例上面相互調用方法。和RPC的卻別主要就是RPC跟語言無關的,好比你調用一個http接口,可是你能夠不關心http的接口具體是用什麼語言實現的。
框架
3、對服務進行優化tcp
一個很是大的項目是有很是很是多不一樣的服務提供方,每一個服務提供方可能有很是多的節點,提供相同的服務。相同的服務也可能有不一樣的版本。等等這樣,會很是複雜繁雜,不利於管理和排錯。
優化
1.簡單的點對點服務:編碼
2.服務治理:
spa
1)首先要有一個註冊中心,可使用Zookeeper,來維護和提供服務方的地址,對象
2)服務節點啓動以後向Zookeeper去註冊服務。Zookeeper與各服務節點維持心跳檢測。可及時檢測到掛掉的節點。
3)消費者獲取全部服務節點,緩存到Map中,依據輪詢的方式來輪流使用相同的服務節點達到負載均衡。
4、RPC的選擇
能夠選擇Thrift來做爲RPC方式,很是簡單實用,我在以前的博客中已經提供了Thrift的使用方式以及簡單原理。具體代碼尚未寫,只是提供一個思路,回頭把代碼寫好了,在提供出來。