1.什么是RPC ?
java遠(yuǎn)程方法調(diào)用,跨虛擬機方法調(diào)用,RPC不是技術(shù),是一種解決方案,google protobuffer提供了該種整合方案。
2.RPC原理?
RPC并不是一項新的技術(shù),而是對原有的java技術(shù)的整合實現(xiàn) 跨進(jìn)程的java方法調(diào)用。
stub,在本地代表遠(yuǎn)程方法的存根,實際上是一個動態(tài)代理對象,代理著遠(yuǎn)程的方法。
需要調(diào)用遠(yuǎn)程方法,先創(chuàng)建stub對象,存根對象上代理著遠(yuǎn)程的方法;在存根對象的方法中實現(xiàn)rpc的調(diào)用過程:
機器a發(fā)起請求,通過stub遠(yuǎn)程代理對象,將數(shù)據(jù)序列化,通過網(wǎng)絡(luò)傳輸?shù)竭_(dá)機器b,機器b對請求進(jìn)行反序列化,找到需要的方法,將方法在經(jīng)過序列化-網(wǎng)絡(luò)傳輸-反序列化的過程返回給機器a。
3. Java中怎么實現(xiàn)序列化?
系列化:將內(nèi)存中不連續(xù)且容易丟失的對象信息轉(zhuǎn)換成二進(jìn)制的信息,用來存儲或傳遞,這個過程叫序列化。
持久化:將內(nèi)存中易失的對象序列化之后保存到持久化的設(shè)備中的過程。 Java中的序列化:
Sun公司在jdk1.0版本的時候就實現(xiàn)了序列化和反序列化技術(shù)。 只需要對需要序列化的類實現(xiàn)Serializable接口,添加序列化id即可。序列化ID的作用是保證在序列化和反序列化的時候解析出來的數(shù)據(jù)一致。
不需要序列化的屬性使用關(guān)鍵字transient
Java中序列化缺點 序列化產(chǎn)生的數(shù)據(jù)量大,速度慢,不能跨語言
開源的序列化和反序列化框架
更多建議: