時間:2019-04-16 14:39:50來æºï¼š 阿銘linux?
什么是RPC
RPC全稱RemoteProcedureCall——é 程éŽç¨‹èª¿ç”¨ã€‚åœ¨å¸æ ¡å¸ç·¨ç¨‹ï¼Œæˆ‘們寫一個函數都是在本地調用就行了。但是在互è¯ç¶²å…¬å¸ï¼Œæœå‹™éƒ½æ˜¯éƒ¨ç½²åœ¨ä¸åŒæœå‹™å™¨ä¸Šçš„分布å¼ç³»çµ±ï¼Œå¦‚何調用呢?
RPC技術簡單說就是為了解決é 程調用æœå‹™çš„一種技術,使得調用者åƒèª¿ç”¨æœ¬åœ°æœå‹™ä¸€æ¨£æ–¹ä¾¿é€æ˜Žã€‚
下圖是客戶端調用é 端æœå‹™çš„éŽç¨‹ï¼š
1)客戶端client發(fÄ)èµ·æœå‹™èª¿ç”¨è«‹æ±‚。
2)clientstubå¯ä»¥ç†è§£æˆä¸€å€‹ä»£ç†ï¼Œæœƒå°‡èª¿ç”¨æ–¹æ³•ã€åƒæ•¸æŒ‰ç…§ä¸€å®šæ ¼å¼é€²è¡Œå°è£ï¼Œé€šéŽæœå‹™æä¾›çš„地å€ï¼Œç™¼(fÄ)起網絡請求。
3)消æ¯é€šéŽç¶²çµ¡å‚³è¼¸åˆ°æœå‹™ç«¯ã€‚
4)serverstub接å—來自socket的消æ¯
5)serverstub將消æ¯é€²è¡Œè§£åŒ…ã€å‘Šè¨´æœå‹™ç«¯èª¿ç”¨çš„哪個æœå‹™ï¼Œåƒæ•¸æ˜¯ä»€ä¹ˆ
6ï¼‰çµæžœè¿”回給serverstub
7)severstubæŠŠçµæžœé€²è¡Œæ‰“包交給socket
8)socket通éŽç¶²çµ¡å‚³è¼¸æ¶ˆæ¯
9)clientslub從socket拿到消æ¯
10)clientstub解包消æ¯å°‡çµæžœè¿”回給client。
一個RPC框架就是把æ¥é©Ÿ2到9都å°è£èµ·ä¾†ã€‚
為什么需è¦RPC
1ã€é¦–å…ˆè¦æ˜Žç¢ºä¸€é»žï¼šRPCå¯ä»¥ç”¨HTTPå”è°å¯¦ç¾ï¼Œå¹¶ä¸”用HTTP是建立在TCP之上最廣泛使用的RPC,但是互è¯ç¶²å…¬å¸å¾€å¾€ç”¨è‡ªå·±çš„ç§æœ‰å”è°ï¼Œæ¯”如éµå» çš„JCEå”è°ï¼Œç§æœ‰å”è°ä¸å…·å‚™é€šç”¨æ€§ç‚ºä»€ä¹ˆé‚„è¦ç”¨å‘¢ï¼Ÿå› 為相比于HTTPå”è°ï¼ŒRPC采用二進制å—節(jié)ç¢¼å‚³è¼¸ï¼Œæ›´åŠ é«˜æ•ˆä¹Ÿæ›´åŠ å®‰å…¨ã€‚
2ã€ç¾åœ¨æ¥(yè)界æå€¡â€œå¾®æœå‹™â€œçš„æ¦‚念,而æœå‹™ä¹‹é–“é€šä¿¡ç›®å‰æœ‰å…©ç¨®æ–¹å¼ï¼ŒRPC就是其ä¸ä¸€ç¨®ã€‚RPCå¯ä»¥ä¿è‰ä¸åŒæœå‹™ä¹‹é–“的互相調用。å³ä½¿æ˜¯è·¨èªžè¨€è·¨å¹³è‡ºä¹Ÿä¸æ˜¯å•題,讓構建分布å¼ç³»çµ±æ›´åŠ å®¹æ˜“ã€‚
3ã€RPC框架都會有æœå‹™é™ç´šã€æµé‡æŽ§åˆ¶çš„功能,ä¿è‰æœå‹™çš„高å¯ç”¨ã€‚
è²æ˜Žï¼šæœ¬æ–‡ç‚ºè½‰è¼‰é¡žæ–‡ç« ,如涉åŠç‰ˆæ¬Šå•é¡Œï¼Œè«‹åŠæ™‚è¯ç³»æˆ‘們刪除(QQ: 2737591964),ä¸ä¾¿ä¹‹è™•,敬請諒解ï¼
標簽:
上一篇:為噴碼機è¨å‚™æä¾›è¥¿é–€åPLCç·¨...
下一篇:皮爾ç£ï¼šé©åˆçš„æ‰æ˜¯æœ€å¥½çš„
ä¸åœ‹å‚³å‹•網版權與å…è²¬è²æ˜Žï¼šå‡¡æœ¬ç¶²æ³¨æ˜Ž[來æºï¼šä¸åœ‹å‚³å‹•ç¶²]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Šå‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(www.siyutn.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉載請與0755-82949061è¯ç³»ã€‚任何媒體ã€ç¶²ç«™æˆ–å€‹äººè½‰è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²â€ï¼Œé•å者本網將追究其法律責任。
本網轉載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯ç¶²æˆ–æ¥(yè)內投稿人士,版權屬于原版權人。轉載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Šæ³•å¾‹è²¬ä»»ã€‚
相關資訊