1. 程式人生 > >dubbo分散式專案開發____配置經驗和心得

dubbo分散式專案開發____配置經驗和心得

//1.zookeeper配置檔案中不要出現中文

會報錯 

//2.分散式開發物件一定要序列化

//摘抄如下

在面向物件程式語言中做分散式計算的時候,經常需要將物件在不同的主機之間傳輸,我這次在實現分散式計算的時候,需要將一個計算物件從中央伺服器Server分發給所有的客戶端client。 通過網路TCP,建立Socket,傳輸一個物件,就需要將物件轉換成一段位元組流,也就叫做物件的序列化。同時,也要求可以從這段位元組流,創建出對應的物件出來。 C++裡面的做法就是在每個類裡面實現兩個介面函式,自己通過寫讀和寫物件的方法,來實現序列化。因為每個類的成員變數的值和成員變數的型別作者自己肯定曉得,所以就需要自己來通過把一個個成員變數寫到流裡面,最終實現了物件到位元組流的轉換。 C++裡面針對純資料型別的結構體,就是成員變數沒有指標的物件的話,還可以通過拷貝記憶體塊到位元組流的方法memcpy,也可以很容易實現序列化,但是這隻能是針對成員變數都是資料型別,沒有指標型別的物件。 在Java裡面就比較方便了,直接通過實現java.io.Serializable介面,JVM就能自動來將類實現序列化。同時,java.io.Serializable介面沒有任何介面函式,只是一個空介面,唯一的作用就是標誌一下這個類是可以序列化。 其實,Java裡面的物件序列化,是JVM在做的,因為JVM可以掌控整個物件的內部資料結構,就可以簡單遍歷樹的方法,來實現把一個物件的所有成員變數寫到位元組流裡面。當然,居然怎麼做的,我也不太清楚,但是所有JVM來說,要做這一點還是很容易的。 Java裡面,幾乎所有的類只要實現了java.io.Serializable介面,就可以實現序列化。但是要求這個類裡面的所有成員變數也是可以序列化的。比如類A有個成員變數物件是類B,如果A能序列化,要求B也要能夠序列化,也就是A實現了java.io.Serializable,要求B也一定實現java.io.Serializable。 網上關於具體實現序列化的Sample程式碼很多了,我這裡只是貼出一段參考: 序列化物件都是通過Java的ObjectInputStream和ObjectOutputStream來實現的。 寫: //個人常見bug問題 //沒匯入dubbo包  //沒啟動zookeeper