Ì©¿µÔÚÏß΢ÐŹ«ÖÚºÅϵ̩¿µÔÚÏ߲Ʋú±£ÏչɷÝÓÐÏÞ¹«Ë¾ÆìÏÂÆ½Ì¨£¬Ï£Íû¿ÉÒÔͨ¹ý³ÖÐø²»¶ÏµÄ´´Ð£¬ÌáÉý¿Í»§¶ÔÓÚ±£ÏÕµÄÈÏÖª¼°ÌåÑ飬ͨ¹ý¶Ô´óÊý¾Ý¼¼ÊõµÄÓ¦Ó㬾«×¼µÄΪ¿Í»§Éè¼Æ²úÆ·ÒÔ¼°Ìṩ·þÎñ¡£Ì©¿µÔÚÏß΢ÐŹ«Öںţ¬ÏÖÓÐ1000¶àÍò·ÛË¿¡£ÔÚÈÕ³£µÄÔËÓªÖУ¬½èÖúÓÚºì°ü½±Àø¡¢¿¨È¯·ÖÏí¡¢ÏûϢ֪ͨ¡¢Î¢ÐÅ·ÖÏíµÈÊֶΣ¬Í¨¹ýºÃµÄÄÚÈÝ£¬ºÃµÄ»î¶¯¡¢ºÃµÄ²úÆ·ÒÔ¼°ÏàÓ¦µÄ¾«×¼ÓªÏúÀ´ÔöÇ¿Óû§µÄÕ³ÐԺͻîÔ¾¶È¡£
ÔÚÈÕ³£ÔËÓªÖУ¬¹«ÖںŻáͨ¹ý¸øÓû§Ï·¢ÓªÏú»òÕß¿ÆÆÕÀàµÄÏûÏ¢À´Í¨Öª¿Í»§¡£ ¸ù¾Ý¾Ñ飬΢ÐÅÏûϢϷ¢ºó10·ÖÖÓºóÁ÷Á¿»áÖð²½ÉÏÉý£¬30·ÖÖÓ×óÓÒµ½´ï·åÖµ£¬1¸öСʱºó»áÏÔÖøÏ½µ¡£ÔÚÕâ¸öʱ¼ä¶ÎÄÚ£¬ÏµÍ³µÄѹÁ¦»áºÜ´ó¡£
ÔÚϵͳÉè¼ÆºÍ¸Ä½øÖУ¬ÏµÍ³µÄºÜ¶à³¡¾°Ê¹ÓÃÒì²½½øÐÐʵÏÖ£¬Ò»·½ÃæÄÜËõ¶ÌÖ÷Á÷³ÌµÄʱ¼ä´¦Àí£¬ÁíÒ»·½ÃæÄܹ»Í¨¹ýÒì²½¶ÓÁнøÐÐÒ»¶¨³Ì¶ÈµÄÏ÷·å¡£½ñÌìÖØµã½éÉܵ¥¸öJVMÄÚµÄÒì²½ÓÅ»¯Êµ¼ù£¬²»Éæ¼°·Ö²¼Ê½Ê±µÄÒì²½ÓÅ»¯Êµ¼ù¡£ÔÚÒì²½Ö´ÐÐʱ£¬¿ÉÒÔµ÷ÓÃÔ¶³ÌµÄ·þÎñ¼¯ÈºÀ´ÊµÏÖÒ»¶¨µÄÈÎÎñ·Ö½â¡£
²¿ÊðʾÒâͼ
Õû¸öϵͳ¶¼²¿ÊðÔÚ¹«ÓÐÔÆÉÏ£¬ÐéÄâ»úÉÏÓв¿Êð1¸öNginx£¬4¸öTomcat£¬NginxʹÓÃËæ»úµÄ·½Ê½¸ºÔؾùºâµ½TomcatÉÏÃæ¡£Ðé»úÖ®¼äͨ¹ýLB½«¿Í»§ÇëÇóת·¢µ½NginxÉÏÃæ¸ºÔؾùºâ£¬NginxÔÙ½«ÇëÇó·ÖÅäµ½tomcatÓ¦Ó÷þÎñÆ÷ÉÏ¡£

Óɶą̀ӦÓ÷þÎñÆ÷£¬¶ÔÍâ·þÎñÌṩRest·þÎñ£¬ÔÚÿ¸öTomcatÄÚ²¿Ê¹ÓÃÒì²½¶ÓÁС£Í¬Ê±ÓÉһ̨¿ØÖÆ·þÎñÆ÷£¬½øÐÐÒì²½ÈÎÎñµÄ²¹³¥ÈÎÎñºÍ¹ÜÀí¹¦ÄÜ¡£TomcatºÍRedisʹÓö༶»º´æÀ´½µµÍ¶ÔRedisµÄѹÁ¦£¬²¢¼õÉÙÒÀÀµ¡£
ΪʲôҪÔÚÐé»úÉϲ¿ÊðNginx½«ÇëÇóת·¢µ½Tomcat£¬¶ø²»ÊÇÓÉLBÖ±½Óת·¢µ½Tomcat¡£ÕâÊÇÒòΪLBÄܹ»Ö§³ÖµÄIP¸öÊýÊÇÓÐÏ޵ġ£
µäÐ͵ÄÓû§³¡¾°
ÔÚ¹«ÖںŵÄÔËÓª¹ý³ÌÖУ¬µäÐ͵Äʼþ°üÀ¨£º
1.·¢ËͶÌÐÅÑéÖ¤Âë
2.¹ºÂò³É¹¦»òÕ߳齱³É¹¦¶ÌÐÅ֪ͨ
3.¿¨È¯»òÓÅ»Ýȯ·¢·Å
4.·¢·Å΢Ðźì°ü
5.΢ÐÅÏûϢ֪ͨ
6.¶©µ¥Á÷³Ì´¦Àí
7.¶¨Ê±Åú´¦Àí£¨±ÈÈçÊý¾Ýͬ²½£©
8.¹¤×÷Á÷ÐÔÖʵÄÒì²½ÈÎÎñ£¨Î´Íê³ÉÒì²½ÈÎÎñ²¹³¥£©
ÃæÏêϸ˵Ã÷²»Í¬³¡¾°Äܹ»Òì²½µÄÔÒò£º
1.²»Í¬³¡¾°£¨Óû§×¢²á£¬Óû§¹ºÂò²úÆ·µÈ£©ÏµĶÌÐÅÑéÖ¤Âë·¢ËÍ£¬¿ÉÒÔʹÓÃÒì²½·½Ê½·¢ËÍ£º Ò»·½ÃæÊÇÒòΪ¿Í»§Õâ¸öʱЧÐÔÒªÇóûÓÐÄÇÑù¸ß£¬ÁíÒ»·½ÃæÔÚÌØ¶¨Ê±¼ä·¶Î§ÄÚÓû§Ã»ÓÐÊÕµ½ÑéÖ¤Â룬Óû§¿ÉÒÔµã»÷Ôٴη¢ËÍÑéÖ¤Âë¡£
2.¹ºÂò³É¹¦»òÕ߳齱³É¹¦ºó¶ÌÐÅ»òÕßÓʼþ֪ͨ£¬¿ÉÒÔͨ¹ýÒì²½µÄ·½Ê½½øÐС£ ÒòÎªÉæ¼°Óû§µÄÀûÒæ£¬Òª½÷É÷¶Ô´ý¡£Ò»·½ÃæÒ»¶¨Òª°ÑÊý¾ÝÏÈ´æµ½Êý¾Ý¿â»òÕßÈÕÖ¾ÀïÃæ£¨×¢ÒâÐÅÏ¢°²È«^-^,±ð´æÃô¸ÐÃ÷ÎÄÐÅÏ¢»òÕß¼ÓÃÜ´æ´¢£©£¬È»ºóÔÙ·ÅÈëµ½Òì²½¶ÓÁÐÖÐÖ´ÐС£
3.ÁíÒ»¸ö·½Ã棬Ҫ¿¼Âǵ½Ó¦Ó÷þÎñÒâÍâֹͣʱ£¬Ã»Óз¢Ëͳɹ¦Êý¾ÝµÄ²¹³¥»úÖÆ¡£ ÕâÖÖÇé¿ö²»³£¼û£¬²¢ÇÒΪÁ˼õÉÙñîºÏºÍµ±Ç°Òì²½³ÌÐòµÄ¸´ÔÓ¶È¡£ÎÒÃÇʹÓõ¥¶ÀµÄ·þÎñÉϲ¿ÊðÒì²½ÈÎÎñ²¹³¥³ÌÐò£¬À´É¨ÃèδÍê³ÉµÄÈÎÎñ£¬²¢ÇÒ½øÐÐÖØ·Å£¨Ò»¶¨Òª×¢ÒâÑϽ÷ÐÔ£©¡£
4.ÓÅ»ÝȯºÍ¿¨È¯µÄ·¢·Å£¬¸ú¹ºÂò³É¹¦»ò³é½±³É¹¦µÄ·½Ê½ÀàËÆ¡£\u000b¿ÉÒÔÔÚµ±Ç°»î¶¯¸ß·åºóÑÓʱ·¢·Å£¬²¢ÇÒʹÓÃÒì²½µÄ·½Ê½½øÐС£
5.΢Ðźì°ü£¬ÒòΪÐèÒª¸ú΢ÐŽøÐн»»¥£¬²¢ÇÒ΢ÐÅ»á֪ͨ¿Í»§ºì°üµÄÇé¿ö£¬¿ÉÒÔʹÓÃÒì²½µÄ·½Ê½½øÐС£ µ±Éæ¼°×ʽð»òÕßÀñƷʱ£¬Ò»¶¨Òª½÷É÷¶Ô´ýÉè¼Æ£¬²¢ÇÒÐèÒªÓз½±ã½øÐÐÒì²½ÈÎÎñÍ£Ö¹ºÍÆô¶¯µÄ¹¦ÄÜ¡£
6.΢ÐÅÏûϢ֪ͨ£¬ÒòΪ¸ú΢ÐŽøÐн»»¥£¬³É¹¦ºó΢ÐŽøÐÐ֪ͨ£¬¿ÉÒÔʹÓÃÒì²½¡£ Õâ¸ö¸ú¶ÌÐÅÑéÖ¤ÂëÀàËÆ¡£
7.¶©µ¥Á÷³Ì´¦Àí£¬¿ÉÒÔʹÓÃÒì²½£¬ÒòÎªÉæ¼°µ½ºóÐø²½Öè¿ÉÒÔʹÓüòµ¥¹¤×÷Á÷À´Íê³É¡£Óм¸¸ö¿ªÔ´µÄ¿ò¼Ü¿ÉÒԲο¼¡£
Êý¾Ýͬ²½»òÕßÒì²½ÈÎÎñ²¹³¥£¬ÒòΪÊÇÑÓʱ´¦Àí£¬¿ÉÒÔʹÓÃÒì²½½øÐд¦Àí¡£ÔÚʹÓÃʱ£¬¿ÉÒÔÅäºÏ¶¨Ê±ÈÎÎñ£¬±ÈÈçcron4jÀ´ÖÜÆÚÐԵĽøÐв¹³¥¡£ÊʺϺóÃæ×Ü-·Ö-×ܵÄÈÎÎñ´¦Àíģʽ¡£
Õë¶ÔÕâЩ“ÎÞ´¦²»ÔÚµÄÒì²½”£¬ºóÃæÏêϸ·ÖÎöÆäÄÚÔÚÄ£ÐÍ¡£
ÎÞ´¦²»ÔÚµÄÒì²½
ÏÂͼ°üº¬ÁË4ÖÖµäÐ͵ÄÒì²½¶ÓÁÐÄ£ÐÍ£¨Í¼Æ¬À´Ô´ÓÚÍøÂ磩£º

Ò»¸öÉú²úÕßÉú²úÊý¾Ý£¬Ò»¸öÏû·ÑÕßÏû·ÑÊý¾Ý£¬Ò»°ãÓÃÔÚºǫ́´¦ÀíµÄÒµÎñÂß¼ÖС£
1.Ò»¸öÉú²úÕßÉú²úÊý¾Ý£¬¶à¸öÏû·ÑÕßÏû·ÑÊý¾Ý£¨ÕâÀïÃæÓÐÁ½ÖÖÇé¿ö£ºÍ¬Ò»¸öÏûÏ¢£¬¿ÉÒÔ±»¶à¸öÏû·ÑÕß·Ö±ðÏû·Ñ¡£»òÕß¶à¸öÏû·ÑÕß×é³ÉÒ»¸ö×飬һ¸öÏû·ÑÕßÏû·ÑÒ»¸öÊý¾Ý£©¡£
2.¶à¸öÉú²úÕßÉú²úÊý¾Ý£¬µ¥¸öÏû·ÑÕßÏû·ÑÊý¾Ý£¬¿ÉÒÔÓÃÔÚÏÞÁ÷»òÕßÅŶӵȺòµ¥Ò»×ÊÔ´´¦ÀíµÄ³¡¾°ÖС£
3.¶à¸öÉú²úÕß·Ö±ðÉú²úÊý¾Ý£¬¶à¸öÏû·ÑÕßÏû·ÑÊý¾Ý£¨ÕâÀïÃæÓÐÁ½ÖÖÇé¿ö£ºÍ¬Ò»¸öÏûÏ¢£¬¿ÉÒÔ±»¶à¸öÏû·ÑÕß·Ö±ðÏû·Ñ¡£»òÕß¶à¸öÏû·ÑÕß×é³ÉÒ»¸ö×飬һ¸öÏû·ÑÕßÏû·ÑÒ»¸öÊý¾Ý£©¡£

×Ü·Ö×ÜÈÎÎñÄ£ÐÍ£ºÌرðÊʵÚÒ»¸öÏß³ÌÈ¡³öÒ»ÅúÊý¾Ý·Åµ½¶ÓÁÐÖУ¨±ÈÈçselect£©£»Óɶà¸öÏ̷ֱ߳ðÖ´ÐÐÒµÎñÂß¼£»Ö´ÐкóµÄ½á¹ûÓÉÒ»¸öÏß³ÌÀ´Ö´ÐУ¨±ÈÈçupdate²Ù×÷£¬ÕâÑùÄܹ»·ÀÖ¹Êý¾Ý¿âËø£©
ÕâÊÇ´Ó¼¼ÊõÉÏ·ÖÎöµÄ¼¸ÖÖ³£¼ûÄ£ÐÍ£¬ÔÚʵ¼ùÖÐÉæ¼°ÔõÑùÑ¡Ôñ¿ò¼Ü¡£
1.ʹÓöÂÈû¶ÓÁеÄÏ̳߳Ø
2.ʹÓù̶¨²½³¤»ò¹Ì¶¨Ê±¼äµÄ¶ÓÁÐ
3.ʹÓÃDisruptor
4.ʹÓÃMQ»òKafka
ʹÓÃÏ̳߳ØÊµÏÖÒì²½ £¨Ö§³Ö¶àÉú²úÕߣ¬¶àÏû·ÑÕߣ©

ÌØµã£º¿ÉÒÔʹÓÃJDK×Ô´øµÄÏ̳߳ØÊµÏÖÒì²½£¬±à³Ì¼òµ¥£¬×ÊÁ϶ࡣ½¨ÒéÔÚ²¢·¢Á¿Ð¡µÄ³¡¾°ÏÂÓÅÏÈÑ¡Ôñ¡£
ʹÓÃGuava Queues £¨Ö§³Ö¶àÉú²úÕßµ¥Ïû·ÑÕߣ©

ÌØµã£ºÒì²½ÅúÁ¿¶ÓÁУ¬ÔÚ¶ÓÁе½´ïÖ¸¶¨³¤¶È£¬»òÕßµ½´ïÖ¸¶¨Ê±¼äºó£¬ÅúÁ¿½øÐÐÊý¾Ý´¦Àí¡£ÊʺÏÓÚ¶ÔÏìӦʱ¼äÒªÇóµÍ£¬Äܹ»ÈÝÈÌÒ»¶¨µÄÊý¾Ý¶ªÊ§µÄ³¡¾°¡£±ÈÈç¶ÌСÎı¾Êý¾ÝµÄÅúÁ¿±£´æ¡£
ÔÚ¾¹ýÒ»¶Îʱ¼äµ÷Ñкó£¬ÎÒÃÇ·¢ÏÖDisruptor¸üÄÜÂú×ãÎÒÃÇÐèÒª¡£
Ê×ÏȽéÉÜÒ»ÏÂDisruptorµÄÇ¿º·µÄÐÔÄÜ¡£




ÕâÕÅͼ°üº¬ÎÒÁоٵÄÉÏÊöµÄÒì²½¶ÓÁÐÄ£Ð;°£¬Òò´ËºÜÓдú±íÒâÒå¡£DisruptorÒòΪʹÓÃÎÞËøµÄ¶ÓÁз½Ê½£¬¾ßÓкܸߵÄÐÔÄÜ¡£¾ßÌåµÄÔÀí²»ÏêÊö£¬´ó¼Ò¿ÉÒÔËÑË÷¿´µ½¡£DisruptorÖ§³ÖÉÏÃæµäÐͳ¡¾°£¬²¢ÇÒÁé»îʹÓÃDisruptorµÄ¹¤×÷Á÷»úÖÆ£¬Äܼò»¯±à³Ì¡£
1.Ó¢ÎÄÎÄÕÂÈëÃÅ£ºhttps://github.com/LMAX-Exchange/disruptor/wiki/Getting-Started
2.ÖÐÎĵÄdemoÁ´½Ó£ºhttp://my.oschina.net/u/2273085/blog/507735?p=1
3.²¢·¢¿ò¼ÜDisruptorÏà¹ØÒëÎÄ£ºhttp://ifeve.com/disruptor/
ÔÙÌùһϹٷ½µÄ²âÊÔ½á¹û¡£

ÏÂÃæ´Ó´úÂë²ãÃæËµÃ÷disruptorµÄ¼¸ÖÖÓ÷¨¡£
ʹÓÃDisruptor£¨µ¥Éú²úÕß¶àÏû·ÑÕߣ©

Disruptor ÌṩÁ˶à¸ö WaitStrategyµÄʵÏÖ£¬Ã¿ÖÖ²ßÂÔ¶¼¾ßÓв»Í¬ÐÔÄܺÍÓÅȱµã£¬¸ù¾Ýʵ¼ÊÔËÐл·¾³µÄ CPU µÄÓ²¼þÌØµãÑ¡ÔñÇ¡µ±µÄ²ßÂÔ£¬²¢ÅäºÏÌØ¶¨µÄ JVMµÄÅäÖòÎÊý£¬Äܹ»ÊµÏÖ²»Í¬µÄÐÔÄÜÌáÉý¡£ ÀýÈ磬BlockingWaitStrategy¡¢SleepingWaitStrategy¡¢YieldingWaitStrategy µÈ£¬ÆäÖУº
1.BlockingWaitStrategy ÊÇ×îµÍЧµÄ²ßÂÔ£¬µ«Æä¶ÔCPUµÄÏûºÄ×îС²¢ÇÒÔÚ¸÷ÖÖ²»Í¬²¿Êð»·¾³ÖÐÄÜÌṩ¸ü¼ÓÒ»ÖµÄÐÔÄܱíÏÖ£»
2.SleepingWaitStrategy µÄÐÔÄܱíÏÖ¸ú BlockingWaitStrategy ²î²»¶à£¬¶Ô CPUµÄÏûºÄÒ²ÀàËÆ£¬µ«Æä¶ÔÉú²úÕßÏ̵߳ÄÓ°Ïì×îС£¬ÊʺÏÓÃÓÚÒì²½ÈÕÖ¾ÀàËÆµÄ³¡¾°£»
3.YieldingWaitStrategyµÄÐÔÄÜÊÇ×îºÃµÄ£¬ÊʺÏÓÃÓÚµÍÑÓ³ÙµÄϵͳ¡£ÔÚÒªÇ󼫸ßÐÔÄÜÇÒʼþ´¦ÀíÏßÊýСÓÚ CPUÂß¼ºËÐÄÊýµÄ³¡¾°ÖУ¬ÍƼöʹÓô˲ßÂÔ£»ÀýÈ磬CPU¿ªÆô³¬Ï̵߳ÄÌØÐÔ¡£
ÎÒÃÇÏÖÔÚʹÓÃBlockingWaitStrategyÕâÖÖģʽ¡£
ʹÓÃDisruptor£¨¶àÉú²úÕß¶àÏû·ÑÕߣ©

ʹÓÃDisruptor£¨¶àÉú²úÕß¶àÏû·ÑÕߣ©

Õâ¸öÀý×ÓÖУ¬Ê¹ÓÃÀàËÆÏ̳߳صÄÏû·Ñ×é´¦ÀíÊý¾Ý¡£
¶à²½Ä£Ê½¹¤×÷Á÷£ºDisruptor


ʹÓÃÒì²½ºóµÄ·³ÄÕ
·³ÄÕÒ»£º Êý¾Ý¶ªÊ§µÄ·çÏÕ
½â¾ö·½Ê½£ºÏÈдÈÕÖ¾»òÊý¾Ý¿â£¬ºó·ÅÈëÒì²½¶ÓÁÐ.
·³ÄÕ¶þ£º¶ÔÆäËûϵͳµÄѹÁ¦±ä´ó
½â¾ö·½Ê½£ºÊ¹ÓÃÒ»¶¨µÄÏÞÁ÷ºÍÈÛ¶Ï£¬¶ÔÆäËûϵͳ½øÐб£»¤¡£
·³ÄÕÈý£ºÊý¾Ý±£´æºóÒì²½ÈÎÎñδִÐÐ
½â¾ö·½Ê½£ºÊ¹ÓÃÒì²½ÈÎÎñ²¹³¥µÄ·½Ê½£¬¶¨ÆÚ´ÓÊý¾Ý¿âÖлñÈ¡Êý¾Ý£¬·Åµ½¶ÓÁÐÖнøÐÐÖ´ÐУ¬Ö´Ðкó¸üÐÂÊý¾Ý״̬λ¡£
·³ÄÕËÄ£ºÔõÑù¶ÓÁг¤ÉèÖúÍÏû·ÑÕßÊýÁ¿
½â¾ö·½Ê½£ºÊ¹ÓÃʵ¼ÊµÄѹÁ¦²âÊÔÀ´»ñµÃ¶ÓÁг¤¶È¡£»òÕßʹÓÃÅŶÓÂÛµÄÊýѧ¹«Ê½µÃµ½³õ²½µÄÖµ,È»ºó½øÐÐʵ¼Êѹ²â¡£
×îºó½éÉÜÒ»ÏÂÏîÄ¿ÖеľÑ飺
1.Á¿Á¦¶øÐУº¸ù¾ÝÒµÎñÌØµã½øÐм¼ÊõÑ¡ÐÍ£¬ÒµÎñÁ¿Ð¡¾¡Á¿±ÜÃâʹÓÃÒì²½¡£ÓÐËùΪ£¬ÓÐËù²»Îª
2.Êý¾Ý˵»°£ºÒ첽ʱһ¶¨Òª½øÐбØÒªµÄѹÁ¦²âÊÔ
3.ÏÈÕÒ³öϵͳµÄ¹Ø¼üµã£ºÓÅ»¯µ¥ÌåϵͳÄÚµÄÐÔÄÜ£¬ÔÙͨ¹ýÕûÌåϵͳ·Ö½âÀ´È«¾ÖÓÅ»¯
4.¸ù¾ÝÍŶӺÍÏîÄ¿µÄÌØµãÑ¡Ôñ¿ò¼Ü¡£
|