为ä»ä¹è¦åºååï¼
æ¬æè½¬èªç±ç¬çæ¶æå¸
å¡äºé½è¦é®ä¸ºä»ä¹ï¼å¨è®²è§£åºååæ¦å¿µååçåï¼æä»¬å æ¥äºè§£ä¸ä¸ä¸ºä»ä¹éè¦åºååã
为ä»ä¹è¦åºååï¼
妿å çå®ä¹ææ³ä½ å¾é¾ä¸ä¸åçè§£åºååçæä¹ï¼é£ä¹æä»¬å¯ä»¥ä»å¦ä¸ä¸ªè§åº¦æ¥æåä¸ä¸ä»ä¹æ¯åºååã
é½ç©è¿æ¸¸æä¹ï¼ç©è¿çåå¦åºè¯¥ç¥é游æéæä¸ä¸ªå«ãåæ¡£ãçåè½ï¼æ¯æ¬¡ä¸æ³ç©çæ¶åå¯ä»¥æå½åè¿åº¦åæ¡£ï¼ä¸æ¬¡ææ¶é´æ³ç©çæ¶åï¼ç´æ¥è½½å ¥å档就å¯ä»¥æ¥çç©äºï¼è¿æ ·ç好夿¯ä¹åçæ¸¸æè¿åº¦ä¸ä¼ä¸¢å¤±ï¼è¦æ¯æ¯æ¬¡æå¼é½éæ°ç©ä¼°è®¡å¤§å®¶ä¹æ²¡ä»ä¹èå¿äºã
妿æé¢åå¯¹è±¡çææ³å¸¦å°æ¸¸æçä¸çï¼é£å¨æä»¬ç¼ä¸ä¸ç®¡æ¯æ¸¸æè§è²è¿æ¯æ¸¸æä¸çæªå ½ãè£ å¤ççé½å¯ä»¥çææ¯ä¸ä¸ªä¸ªå¯¹è±¡ï¼
- è§è²å¯¹è±¡ï¼å 嫿§å«ãç级ãç»éªå¼ãè¡éã伤害å¼ãæ¤ç²å¼ç屿§ï¼
- æªå ½å¯¹è±¡ï¼å å«ç±»åãè¡éãç级çç屿§ï¼
- è£ å¤å¯¹è±¡ï¼å å«ç±»åã伤害å¼ãéå å¼çç屿§ï¼
å¨ç©æ¸¸æçè¿ç¨ä¸å建ä¸ä¸ªæ¸¸æè§è²å°±å¥½åæ¯å建äºä¸ä¸ªè§è²å¯¹è±¡ï¼æ¿å°ä¸å¥è£ å¤å°±å¥½åå建äºä¸ä¸ªè£ å¤å¯¹è±¡ï¼è·¯ä¸éå°çæªå ½ççä¹é½æ¯å¯¹è±¡äºã
æä»¬åç¨è®¡ç®æºçæç»´å»æèï¼å建çè¿äºå¯¹è±¡é½æ¯ä¿åå¨å åä¸çï¼å¤§å®¶é½ç¥éå åçæ°æ®æ¯çæä¿ççï¼æçµä¹åæ¯ä¼æ¶å¤±çï¼ä½æ¯æ¸¸æç»è¿æå¨åæ¡£ä¹åå°±ç®ä½ å ³æºå 天äºï¼å次è¿å ¥æ¸¸æè¯»ååæ¡£ï¼ä½ ä¼åç°ä¹å卿¸¸æä¸å建çè§è²åè£ å¤é½è¿å¨å¢ï¼è¿å°±å¾å¥æªäºï¼ææå åçæ°æ®æçµå°±æ¶å¤±äºï¼è¿æ¯ä¸ºä»ä¹ï¼
ç¨å æèå°±ç¥éï¼æä»¬å¨åæ¡£çè¿ç¨ä¸å°±æ¯å°å åä¸çæ°æ®åå¨å°çµèç硬çä¸ï¼ç¡¬ççæ°æ®å¨å ³æºæçµåæ¯ä¸ä¼ä¸¢å¤±çï¼å«æ ï¼ç¡¬çæåæ°æ®ä¸¢å¤±å ä¸èèï¼ãè¿ä¸ªè¿ç¨å°±æ¯å¯¹è±¡çæä¹ åï¼ä¹å°±æ¯æä»¬ä»å¤©è¦è®²ç对象åºååã对象çåºååéè¿ç¨å°±å«åååºååï¼ååºååä¹å¾å¥½ç解就æ¯å°ç¡¬çä¸çä¿¡æ¯è¯»ååºæ¥å½¢æå¯¹è±¡ã
ä»ä¹æ¯åºååï¼
åé¢å¼å ¥æ¸¸æçä¾åæ¯ä¸ºäºè®©å¤§å®¶çå¨å°çè§£ä»ä¹æ¯åºåååååºååãç®åæ»ç»ä¸ä¸å°±æ¯ï¼
- åºå忝æå°å¯¹è±¡å®ä¾çç¶æåå°åå¨åªä½çè¿ç¨
- ååºå忝æå°åå¨å¨åå¨åªä½ä¸çå¯¹è±¡ç¶æè£ æ¢æå¯¹è±¡çè¿ç¨
ç¨æ´ä¸ºæ½è±¡çæ¦å¿µæ¥è®²ï¼
**åºååï¼**æå¯¹è±¡è½¬å为å¯ä¼ è¾çåèåºåè¿ç¨

ååºååï¼æåèåºåè¿å为对象çè¿ç¨

åºååçæºå¶
åºååæç»çç®çæ¯ä¸ºäºå¯¹è±¡å¯ä»¥è·¨å¹³å°åå¨åè¿è¡ç½ç»ä¼ è¾ï¼èæä»¬è¿è¡è·¨å¹³å°åå¨åç½ç»ä¼ è¾çæ¹å¼å°±æ¯ IOï¼è IO æ¯æçæ°æ®æ ¼å¼å°±æ¯åèæ°ç»ã
é£ç°å¨çé®é¢å°±æ¯å¦ä½æå¯¹è±¡è½¬æ¢æåèæ°ç»ï¼è¿ä¸ªå¾å¥½åï¼ä¸è¬çç¼ç¨è¯è¨é½æè¿ä¸ªè½åï¼å¯ä»¥å¾å®¹æå°å¯¹è±¡è½¬æåèæ°ç»ã
ä»ç»ä¸æ³ï¼æä»¬åæ¹é¢çæå¯¹è±¡è½¬æåèæ°ç»è¿ä¸è¡ï¼å 为没æè§åçåèæ°ç»æä»¬æ¯æ²¡åæ³æå¯¹è±¡çæ¬æ¥é¢ç®è¿å忥çï¼ç®å说就æ¯å°å¯¹è±¡è½¬æåèæ°ç»å®¹æä½æ¯å°åèæ°ç»è¿åæå¯¹è±¡å°±é¾äºï¼æä»¥æä»¬å¿ é¡»å¨æå¯¹è±¡è½¬æåèæ°ç»çæ¶åå°±å¶å®ä¸ç§è§åï¼åºååï¼ï¼é£ä¹æä»¬ä» IO æµéé¢è¯»åºæ°æ®çæ¶åå以è¿ç§è§åæå¯¹è±¡è¿å忥ï¼ååºååï¼ã
è¿æ¯æ¿ä¸é¢æ¸¸æé£ä¸ªä¾åï¼æä»¬å°æ£å¨ç©ç游æåæ¡£å°ç¡¬çï¼åºååå°±æ¯å°ä¸ä¸ªä¸ªè§è²å¯¹è±¡åè£ å¤å¯¹è±¡åå¨å°ç¡¬çï¼ç¶åçä¸ä¸å¼ åæ¥å¯¹è±¡çç»æå¾çº¸ï¼ååºååå°±æ¯å°ç¡¬çéä¸ä¸ªä¸ªå¯¹è±¡è¯»åºæ¥ç §çå¾çº¸é个è¿åæ¢å¤ã
常è§åºååçæ¹å¼
åºåååªæ¯å®ä¹äºæè§£å¯¹è±¡çå ·ä½è§åï¼é£è¿ç§è§åè¯å®ä¹æ¯å¤ç§å¤æ ·çï¼æ¯å¦ç°å¨å¸¸è§çåºå忹弿ï¼JDK åçãJSONãProtoBufãHessianãKryoçã
ï¼1ï¼JDK åç
ä½ä¸ºä¸ä¸ªæççç¼ç¨è¯è¨ï¼JDKèªå¸¦äºåºååæ¹æ³ãåªéè¦ç±»å®ç°äºSerializableæ¥å£ï¼å°±å¯ä»¥éè¿ObjectOutputStreamç±»å°å¯¹è±¡åæbyte[]åèæ°ç»ã
JDK åºååä¼æå¯¹è±¡ç±»çæè¿°ä¿¡æ¯åææç屿§ä»¥åç»§æ¿çå æ°æ®é½åºåå为åèæµï¼æä»¥ä¼å¯¼è´çæçåèæµç¸å¯¹æ¯è¾å¤§ã
å¦å¤ï¼è¿ç§åºå忹弿¯ JDK èªå¸¦çï¼å æ¤ä¸æ¯æè·¨è¯è¨ã
ç®åæ»ç»ä¸ä¸ï¼JDK åççåºååæ¹å¼çæçåèæµæ¯è¾å¤§ï¼ä¹ä¸æ¯æè·¨è¯è¨ï¼å æ¤å¨å®é 项ç®åæ¡æ¶ä¸ç¨ç齿¯è¾å°ã
ï¼2ï¼ProtoBuf
è°·ææ¨åºçï¼æ¯ä¸ç§è¯è¨æ å ³ã平尿 å ³ã坿©å±çåºååç»ææ°æ®çæ¹æ³ï¼å®å¯ç¨äºéä¿¡åè®®ãæ°æ®åå¨çãåºåååä½ç§¯å°ï¼ä¸è¬ç¨äºå¯¹ä¼ è¾æ§è½æè¾é«è¦æ±çç³»ç»ã
ï¼4ï¼Hessian
Hessian æ¯ä¸ä¸ªè½»é级çäºè¿å¶ web service åè®®ï¼ä¸»è¦ç¨äºä¼ è¾äºè¿å¶æ°æ®ã
å¨ä¼ è¾æ°æ®å Hessian æ¯æå°å¯¹è±¡åºååæäºè¿å¶æµï¼ç¸å¯¹äº JDK åçåºååï¼Hessianåºååä¹åä½ç§¯æ´å°ï¼æ§è½æ´ä¼ã
ï¼5ï¼Kryo
Kryo æ¯ä¸ä¸ª Java åºååæ¡æ¶ï¼å·ç§° Java æå¿«çåºååæ¡æ¶ãKryo å¨åºååé度ä¸å¾æä¼å¿ï¼åºå±ä¾èµäºåèç çææºå¶ã
ç±äºåªè½éå®å¨ JVM è¯è¨ä¸ï¼æä»¥ Kryo 䏿¯æè·¨è¯è¨ä½¿ç¨ã
ï¼6ï¼JSON
ä¸é¢è®²çå ç§åºååæ¹å¼é½æ¯ç´æ¥å°å¯¹è±¡åæäºè¿å¶ï¼ä¹å°±æ¯byte[]åèæ°ç»ï¼è¿äºæ¹å¼é½å¯ä»¥å«äºè¿å¶æ¹å¼ã
JSON åºååæ¹å¼çæçæ¯ä¸ä¸²æè§åçå符串ï¼å¨å¯è¯»æ§ä¸è¦ä¼äºä¸é¢å ç§æ¹å¼ï¼ä½æ¯å¨ä½ç§¯ä¸å°±æ²¡ä»ä¹ä¼å¿äºã
å¦å¤ JSON æ¯æè§åçå符串ï¼ä¸è·ä»»ä½ç¼ç¨è¯è¨ç»å®ï¼å¤©ç¶ä¸å°±å ·å¤äºè·¨å¹³å°ã
æ»ç»ä¸ä¸ï¼JSON å¯è¯»æ§å¼ºï¼æ¯æè·¨å¹³å°ï¼ä½ç§¯ç¨å¾®éè²ã
JSON åºåå常è§çæ¡æ¶æï¼
fastJSONãJacksonãGson çã
åºååææ¯çéå
ä¸é¢å举çè¿äºåºååææ¯åæä¼ç¼ºç¹ï¼ä¸è½ç®åå°è¯´åªä¸ç§å°±æ¯æå¥½çï¼ä¸ç¶ä¹ä¸ä¼æè¿ä¹å¤åºååææ¯å ±åäºã
æ¢ç¶æè¿ä¹å¤åºååææ¯å¯ä¾éæ©ï¼é£å¨å®é 项ç®ä¸å¦ä½éåå¢ï¼
æè®¤ä¸ºéè¦ç»åå ·ä½çé¡¹ç®æ¥çï¼æ¯è¾ææ¯æ¯æå¡äºä¸å¡çãä½ å¯ä»¥ä»ä¸é¢è¿å 个å ç´ æ¥èèï¼
ï¼1ï¼åè®®æ¯å¦æ¯æè·¨å¹³å°
妿ä¸ä¸ªå¤§çç³»ç»æå¥½å¤ç§è¯è¨è¿è¡æ··åå¼åï¼é£ä¹å°±è¯å®ä¸éåç¨æè¯è¨å±éæ§çåºåååè®®ï¼æ¯å¦ JDK åçãKryo è¿äºåªè½ç¨å¨ Java è¯è¨èå´ä¸ï¼ä½ ç¨ JDK åçæ¹å¼è¿è¡åºååï¼ç¨å ¶ä»è¯è¨æ¯æ æ³ååºååçã
ï¼2ï¼åºååçé度
妿åºååçé¢çé常é«ï¼é£ä¹éæ©åºååé度快çåè®®ä¼ä¸ºä½ çç³»ç»æ§è½æåä¸å°ã
ï¼3ï¼åºååçæçä½ç§¯
妿é¢ç¹çå¨ç½ç»ä¸ä¼ è¾çæ°æ®é£å°±éè¦æ°æ®è¶å°è¶å¥½ï¼å°çæ°æ®ä¼ è¾å¿«ï¼ä¹ä¸å 带宽ï¼ä¹è½æ´ä½æåç³»ç»çæ§è½ï¼å æ¤åºååçæçä½ç§¯å°±å¾å ³é®äºã
å°ç»
ï¼1ï¼ä¸ºä»ä¹æä»¬è¦åºååï¼
å 为æä»¬éè¦å°å åä¸ç对象åå¨å°åªä»ä¸ï¼æè æä»¬éè¦å°ä¸ä¸ªå¯¹è±¡éè¿ç½ç»ä¼ è¾å°å¦å¤ä¸ä¸ªç³»ç»ä¸ã
ï¼2ï¼ä»ä¹æ¯åºååï¼
åºååå°±æ¯æå¯¹è±¡è½¬å为å¯ä¼ è¾çåèåºåè¿ç¨ï¼ååºååå°±æ¯æåèåºåè¿å为对象çè¿ç¨ã
ï¼3ï¼åºååçæºå¶
åºååæç»çç®çæ¯ä¸ºäºå¯¹è±¡å¯ä»¥è·¨å¹³å°åå¨åè¿è¡ç½ç»ä¼ è¾ï¼èæä»¬è¿è¡è·¨å¹³å°åå¨åç½ç»ä¼ è¾çæ¹å¼å°±æ¯ IOï¼è IO æ¯æçæ°æ®æ ¼å¼å°±æ¯åèæ°ç»ã
å°å¯¹è±¡è½¬æåèæ°ç»çæ¶åéè¦å¶å®ä¸ç§è§åï¼è¿ç§è§åå°±æ¯åºååæºå¶ã
ï¼4ï¼å¸¸è§åºååçæ¹å¼
ç°å¨å¸¸è§çåºå忹弿ï¼JDK åçãJSONãProtoBufãHessianãKryoçã
ï¼5ï¼åºååææ¯çéå
éåæéè¦çå°±æ¯è¦èèè¿ä¸ä¸ªæ¹é¢ï¼åè®®æ¯å¦æ¯æè·¨å¹³å°ãåºååçé度ãåºååçæçä½ç§¯ã