2015年阿里巴巴中介軟體比賽rpc框架
原始碼: https://github.com/jinhang/my-RPC-Framwork.git
賽題要求:
一個簡單的RPC框架
RPC(Remote Procedure Call )——遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通訊程式之間攜帶資訊資料。在OSI網路通訊模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網路分散式多程式在內的應用程式更加容易。
框架——讓程式設計人員便捷地使用框架所提供的功能,由於RPC的特性,聚焦於應用的分散式服務化開發,所以成為一個對開發人員無感知的介面代理,顯然是RPC框架優秀的設計。
題目要求
1.要成為框架:對於框架的使用者,隱藏RPC實現。
2.網路模組可以自己編寫,如果要使用IO框架,要求使用netty-4.0.23.Final。
3.支援非同步呼叫,提供future、callback的能力。
4.能夠傳輸基本型別、自定義業務型別、異常型別(要在客戶端丟擲)。
5.要處理超時場景,服務端處理時間較長時,客戶端在指定時間內跳出本次呼叫。
6.提供RPC上下文,客戶端可以透傳資料給服務端。
7.提供Hook,讓開發人員進行RPC層面的AOP。
注:為了降低第一題的難度,RPC框架不需要註冊中心,客戶端識別-DSIP的JVM引數來獲取服務端IP
RPC其實並不難。通俗來說就是客戶端通過一定的協議把方法名稱、引數型別還有引數傳給伺服器,然後伺服器呼叫對應方法,完成以後再把結果傳回來給客戶端,僅此而已。
相關文章
- 遠端呼叫中介軟體(RPC)RPC
- 軟體比賽
- MQ中介軟體對比MQ
- Express框架(二)—— 中介軟體Express框架
- 中介軟體增強框架之-CaptureFramework框架框架APTFramework
- PHP 框架中介軟體實現PHP框架
- 孔子=?中介軟體開發框架?框架
- Django框架之中介軟體引入Django框架
- Django框架之中介軟體思想Django框架
- 使用Netty構建Rpc中介軟體(一)NettyRPC
- 訊息中介軟體—RocketMQ的RPC通訊(一)MQRPC
- 中介軟體增強框架之InterceptFramework框架Framework
- Express 與 koa 中介軟體模式對比Express模式
- Redis中介軟體與Web中介軟體RedisWeb
- 訊息中介軟體(RabbitMq、Kafka)分析比較MQKafka
- 如何開發一個框架或中介軟體框架
- 中介軟體之訊息中介軟體-pulsar
- 體育比賽押注的軟體 正規足球比賽押注平臺推薦
- redux, koa, express 中介軟體實現對比解析ReduxExpress
- go的web框架gin的使用(八):中介軟體GoWeb框架
- 學習Node須知——中介軟體框架Connect框架
- nodejs express 框架解密3-中介軟體模組NodeJSExpress框架解密
- 體育比賽押注的軟體有哪些 世界盃足球比賽押注平臺推薦
- ThinkPHP 中介軟體PHP
- redux中介軟體Redux
- golang 中介軟體Golang
- 中介軟體整理
- django中介軟體Django
- Laravel 中介軟體Laravel
- Django——中介軟體Django
- MySQL中介軟體MySql
- 中介軟體-NginxNginx
- 中介軟體漏洞
- 「Go框架」深入理解web框架的中介軟體執行機制Go框架Web
- 訊息中介軟體Notify和MetaQ-阿里中介軟體阿里
- 什麼是中介軟體?Linux常用中介軟體都有哪些?Linux
- 訊息佇列中介軟體的選型與比較佇列
- 螞蟻 RPC 框架 SOFA-RPC 初體驗RPC框架