»º´æÏµÍ³MemCachedµÄJava¿Í»§¶ËÓÅ»¯Àú³Ì
來Ô´£ºhttp://www.infoq.com/cn/articles/memcached-java
×÷Õß
á¯Îijõ
·¢²¼ÓÚ
2008Äê9ÔÂ27ÈÕ ÉÏÎç12ʱ38·Ö
ÉçÇø
Java
Ö÷Ìâ
¼¯ÈºÓ뻺´æ
Memcached ÊÇʲô£¿
MemcachedÊÇÒ»ÖÖ¼¯ÖÐʽCache£¬Ö§³Ö·Ö²¼Ê½ºáÏòÀ©Õ¹¡£ÕâÀïÐèÒª½âÊÍ˵Ã÷һϣ¬ºÜ¶à¿ª·¢Õß¾õµÃMemcachedÊÇÒ»ÖÖ·Ö²¼Ê½»º´æÏµÍ³£¬
µ«ÊÇÆäʵMemcached·þÎñ¶Ë±¾ÉíÊǵ¥ÊµÀýµÄ£¬Ö»ÊÇÔÚ¿Í»§¶ËʵÏÖ¹ý³ÌÖпÉÒÔ¸ù¾Ý´æ´¢µÄÖ÷¼ü×ö·ÖÇø´æ´¢£¬¶øÕâ¸öÇø¾ÍÊÇMemcached·þÎñ¶ËµÄÒ»¸ö»ò
Õß¶à¸öʵÀý£¬Èç¹û½«¿Í»§¶ËÒ²ÄÒÀ¨µ½MemcachedÖУ¬ÄÇô¿ÉÒÔ²¿·Ö¸ÅÄîÉÏ˵ÊǼ¯ÖÐʽµÄ¡£Æäʵ»Ø¹Ëһϼ¯ÖÐʽµÄ¹¹¼Ü£¬ÎÞ·ÇÁ½ÖÖÇé¿ö£ºÒ»Êǽڵã¾ùºâµÄÍø×´
£¨JBoss Tree
Cache£©£¬ÀûÓÃJGroupµÄ¶à²¥Í¨ÐÅ»úÖÆÀ´Í¬²½Êý¾Ý£»¶þÊÇMaster-Slavesģʽ£¨·Ö²¼Ê½Îļþϵͳ£©£¬ÓÉMasterÀ´¹ÜÀíSlave£¬±È
ÈçÈçºÎÑ¡ÔñSlave£¬ÈçºÎÇ¨ÒÆÊý¾ÝµÈ¶¼ÊÇÓÉMasterÀ´Íê³É£¬µ«ÊÇMaster±¾ÉíÒ²´æÔÚµ¥µãÎÊÌâ¡£ÏÂÃæÔÙ×ܽἸ¸öËüµÄÌØµãÀ´Àí½âÒ»ÏÂÆäÓŵãºÍÏÞÖÆ¡£
ÄÚ´æ´æ´¢
£º²»ÑÔ¶øÓ÷£¬Ëٶȿ죬µ«¶ÔÓÚÄÚ´æµÄÒªÇó¸ß¡£ÕâÖÖÇé¿ö¶ÔCPUÒªÇóºÜµÍ£¬ËùÒÔ³£³£²ÉÓý«
Memcached·þÎñ¶ËºÍһЩCPU¸ßÏûºÄÄÚ´æ¡¢µÍÏûºÄÓ¦Óò¿ÊðÔÚÒ»Æð¡££¨ÎÒÃǵÄij¸ö²úÆ·ÕýºÃÓÐÕâÑùµÄ»·¾³£¬ÎÒÃǵĽӿڷþÎñÆ÷Óжą̀£¬ËüÃǶÔCPUÒªÇó
ºÜ¸ß——ÔÒòÔÚÓÚWS-SecurityµÄʹÓ㬵«ÊǶÔÓÚÄÚ´æÒªÇóºÜµÍ£¬Òò´Ë¿ÉÒÔÓÃ×÷MemcachedµÄ·þÎñ¶Ë²¿Êð»úÆ÷£©¡£
¼¯ÖÐʽ»º´æ£¨Cache£©
£º±Ü¿ªÁË·Ö²¼Ê½»º´æµÄ´«²¥ÎÊÌ⣬µ«ÊÇÐèÒª·Çµ¥µãÀ´±£Ö¤Æä¿É¿¿ÐÔ£¬Õâ¸ö¾ÍÊǺóÃæ¼¯³ÉÖÐËù
×÷µÄ¼¯Èº£¨Cluster£©¹¤×÷£¬¿ÉÒÔ½«¶à¸öMemcached×÷Ϊһ¸öÐéÄâµÄ¼¯Èº£¬Í¬Ê±¶ÔÓÚ¼¯ÈºµÄ¶ÁдºÍÆÕͨµÄMemcachedµÄ¶ÁдÐÔÄÜûÓвî±ð¡£
·Ö²¼Ê½À©Õ¹
£ºMemcachedºÜÍ»³öµÄÒ»¸öÓŵã¾ÍÊDzÉÓÃÁ˿ɷֲ¼Ê½À©Õ¹µÄģʽ¡£¿ÉÒÔ½«²¿ÊðÔÚһ̨»úÆ÷ÉϵĶà¸ö
Memcached·þÎñ¶Ë»òÕß²¿ÊðÔÚ¶à¸ö»úÆ÷ÉϵÄMemcached·þÎñ¶Ë×é³ÉÒ»¸öÐéÄâµÄ·þÎñ¶Ë£¬¶ÔÓÚµ÷ÓÃÕßÀ´ËµÔòÊÇÍêÈ«ÆÁ±ÎºÍ͸Ã÷µÄ¡£ÕâÑù×ö¼ÈÌá¸ßÁ˵¥
»úµÄÄÚ´æÀûÓÃÂÊ£¬Ò²ÌṩÁËÏòÉÏÀ©ÈÝ£¨Scale Out£©µÄ·½Ê½¡£
SocketͨÐÅ£º
Õâ¶ùÐèҪעÒâ´«ÊäÄÚÈݵĴóСºÍÐòÁл¯µÄÎÊÌ⣬ËäÈ»Memcachedͨ³£»á±»·ÅÖõ½ÄÚÍø×÷Ϊ
»º´æ£¬Socket´«ÊäËÙÂÊÓ¦¸Ã±È½Ï¸ß£¨µ±Ç°Ö§³ÖTCPºÍUDPÁ½ÖÖģʽ£¬Í¬Ê±¸ù¾Ý¿Í»§¶ËµÄ²»Í¬¿ÉÒÔÑ¡ÔñʹÓÃNIOµÄͬ²½»òÕßÒì²½µ÷Ó÷½Ê½£©£¬µ«ÊÇÐòÁл¯
³É±¾ºÍ´ø¿í³É±¾»¹ÊÇÐèҪעÒâ¡£ÕâÀïÒ²ÌáÒ»ÏÂÐòÁл¯£¬¶ÔÓÚ¶ÔÏóÐòÁл¯µÄÐÔÄÜÍùÍùÈôó¼ÒÍ·Í´£¬µ«ÊÇÈç¹û¶ÔÓÚͬһÀàµ
Ïà¹ØÎĵµ£º
1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar ;
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar ;
Class.forName( "org.postgresql. ......
̸̸Java¼Ì³ÐÖеÄÖØÔØ£¬¸²¸ÇºÍÒþ²Ø
ºÃ¾Ã²»Ð´²©¿ÍÁË£¬¾àÀëÉÏһƪÒѾ¹ýÁËÁ½Äê¶àÁË¡£ÕâÁ½ÄêÔÚ¸ÉÂï,×ÜÖ®Ò»ÄêÄѾ¡£¡
ǰһ¶Îʱ¼äæÁËÁ½¸öÔ£¬Ã¦×ÅÑо¿ºÍ×öһЩSSH¼Ü¹¹µÄ¶«Î÷£¬Á½¸öÔÂÏÂÀ´£¬ÊÕ»ñÆÄ·á£¬×î½üÏÐÏÂÀ´ÁË£¬ÓÚÊǾÍÍ´¿ìµÄ¿ªÊ¼ÍæÓÎÏ·£¬µ«ÊDz»ÖªÔõôµØ£¬ÔõÃ´Íæ¶¼Ã»Òâ˼£¬ÓÚÊǾö¶¨¿ªÊ¼ÔٺúÃÑо¿Ñо¿Java°É¡£ÓÚÊÇ´ó¸Å·ÁË· ......
¡¾1¡¿Í¨¹ý¿´ÕâÌ×ÊÓÆµÎÒѧµ½ÁËÃæÊԵļ¼ÇÉ£¬ÒÔ¼°Ò»Ð©ÐèÒª¼ÇסµÄÃæÊÔÌâ
¡¾2¡¿Í¨¹ý¿´ÊÓÆµÎÒѧµ½ÁËÔõÑùȥѧϰ£¬ÔõÑùÔÚ¶Ìʱ¼äÄڰѸÃÓõļ¼Êõѧ»á£¬Í¨¹ý²é¿´×ÊÁÏÆ©ÈçAPIµÈ£¬¶øÇÒ»¹Ñ§»áÁËÏÖѧÏÖÂô£¬»îѧ»îÓÃ
¡¾3¡¿Ê²Ã´ÊÇIDEÓ¦ÓóÌÐò¿ª·¢¹¤¾ß
¡¾4¡¿MyEclipseµÄһЩʹÓÃС¼¼ÇÉ£¬Í¨¹ýÕâЩС¼¼ÇÉ¿ÉÒÔÔö¼Ó¿ª·¢Ð§ÂÊ
£¨¿ì½Ý¼ü£©£¨javaÄ ......
ÒòΪ³ÌÐòÒª´ÓÊý¾Ý¶ÁÈ¡½ü10WÐмǼ´¦Àí£¬µ±¶Áµ½9WµÄʱºò¾Í³öÏÖ java.lang.OutOfMemoryError: Java heap space ÕâÑùµÄ´íÎó¡£
ÔÚÍøÉÏÒ»²é¿ÉÄÜÊÇJAVAµÄ¶ÑÕ»ÉèÖÃ̫СµÄÔÒò¡£
¸ú¾ÝÍøÉϵĴ𰸴óÖÂÓÐÕâÁ½ÖÖ½â¾ö·½·¨£º
1¡¢ÉèÖû·¾³±äÁ¿
set JAVA_OPTS= -Xms32m -Xmx512m
¿ÉÒÔ¸ù¾Ý×Ô¼º»úÆ÷µÄÄÚ´æ½øÐиü¸Ä,µ«±¾È˲âÊÔÕâÖÖ· ......
×î½üÌýµ½Ò»¸öÏûÏ¢£¬¾Ý˵ÌÚѶµÄ²Æ¸¶Í¨ÔÚÕÐÆ¸ Java ·½ÃæµÄ¸ßÊÖ£¬"²ÎÓëϵͳ¼Ü¹¹Ñ¡ÐÍ"£¬Òª°Ñµ×²ã¼Ü¹¹´Ó C/C++ Ç¨ÒÆµ½ Java ¼Ü¹¹ÉÏÀ´¡£Æäʵµ±ÄãµÄÏîÄ¿µ½Ò»¶¨¹æÄ£Ö®ºó¸ü¶àÐèÒª¿¼ÂǵÄÊǶàÈËÐ×÷¿ª·¢µÄÎÊÌ⣬¿ÉÄܵ±³õ²Æ¸¶Í¨µÄºËÐÄ´úÂëÒ²¾ÍÊÇÒ»Á½¸öÈËÓÃC/C++¸ã¶¨µÄ£¬¿ÉÊǵ±ÒµÎñÀ©´ó¡¢¸´ÔÓÖ®ºó£¬·¢ÏÖ¶ ......