ÕªÒª
12306»ìºÏÔÆ³É¹¦°¸Àý¸øÓè×î´óµÄÆô·¢¾ÍÊÇ´òÔìÒ»¸ö´Óϵ½É϶¼¿É×öµ¯ÐÔÀ©Õ¹µÄ¡°ÔÆÓ¦Óá±ÏµÍ³£¬ÆóÒµ¿Í»§¿É½«¹Ø¼üÒµÎñµÄ¡°×Óϵͳ¡±²¿ÊðÔÚ×ÊÔ´·á¸»µÄÔÆ¼ÆËãÊý¾ÝÖÐÐÄ£¬¡°ÔÆ»¯¡±ºóµÄ×Óϵͳ¿É¡°°´Ð衱»ñÈ¡ËùÐèÒªµÄ·þÎñÆ÷Ðé»ú×ÊÔ´ºÍ¶¯Ì¬µ÷ÕûÍøÂç´ø¿í£¬ÀûÓÃÕâЩ×ÊÔ´½â¾öÔÚ¸ßÁ÷Á¿ºÍ¸ß¸ºÔØÇé¿öÏ£¬ÏµÍ³ÎÞ·¨¿ìËÙµ¯ÐÔÀ©Õ¹µ¼ÖµÄÐÔÄÜÆ¿¾±¡£
´ËƪÎÄÕÂÁоٲ»Í¬ÀàÐ͵Äϵͳ¸ÄÔìÇ¨ÒÆµ½ÔÆÆ½Ì¨·½°¸£¬´Ó¸ÄÔì˼·̽ÌÖ£¬ÏµÍ³¿ò¼ÜÉè¼ÆºÍÏîĿʵʩµÄÕû¸öÇ¨ÒÆ¹ý³Ì£¬¹©´ó¼Ò²Î¿¼ºÍ½»Á÷¡£ÔÚ´ËÒÔPivotal
GemfireÔÆÆ½Ì¨ÎªÀý×Ó£¬ ÒòΪËüÒÑÓдó¹æÄ£²¿Êð³É¹¦°¸Àý¡£ ¿Í»§IT»·¾³ÊÇÎ廨°ËÃÅ£¬ ¶Ôϵͳ¸ÄÔìµÄ˼·ºÍÄ¿µÄÒ²²»¾¡Ïàͬ£¬GemfireÊDz»´íµÄÑ¡Ôñ£¬µ«Ëü²»ÊÇΨһµÄÑ¡Ïî¡£
ǰÑÔ
ÔÚ¹ýÈ¥20Ä꣬ϵͳ¼Ü¹¹Ê¦×î³£ÓõÄϵͳ¿ò¼ÜÊÇÈý²ã¼Ü¹¹Éè¼Æ£¬ ¼´Web²ã£¬ Ó¦ÓÃÒµÎñÂß¼²ãºÍÊý¾Ý¿â²ã£»Web²ãºÍÓ¦ÓÃÂß¼²ã¿ÉËæ×ÅÒµÎñ±ä»¯×ö¿ìËÙµ¯ÐÔÀ©Õ¹£¬µ«¾ø´ó²¿·Ö¹ØÏµÐÍÊý¾Ý¿â²ãÎÞ·¨ÊµÏִ˹¦ÄÜ¡£
ÔÚÔÆ¼ÆË㣬´óÊý¾ÝºÍÒÆ¶¯»¥ÁªÍøÊ±´ú£¬ÓÉÓÚÒµÎñ³É³¤¿ìËÙ£¬·þÎñ¶àÑù»¯£¬ Êý¾ÝÁ¿¼±¾çÔö¼Ó£¬Óû§¶ÔϵͳÏìӦʱ¼äÓиüÑϸñµÄÒªÇó£»
Ôڸ߸ºÔØÇé¿öÏ£¬ÎÞ·¨ºáÏòÀ©Õ¹µÄÊý¾Ý¿â²ãÍùÍù³ÉΪϵͳÐÔÄܵİí½Åʯ¡£
ÔÚ´ËÆªÎÄÕ£¬ÌÖÂÛÖØµãÊÇ´ÓÈí¼þÖмä¼þƽ̨£¨PaaS£©ºÍÓ¦ÓÃϵͳ£¨SaaS£©²ãÃæ³ö·¢£¬Ê¹Óá°·Ö²¼Ê½ÄÚ´æÊý¾ÝÍø¸ñ(
In Memory Data Grid)¡±¼¼Êõ£¬½«´«Í³¼Ü¹¹¸ÄÔìÇ¨ÒÆµ½ÔÆÆ½Ì¨¡£ÏµÍ³¸ÄÔìÓжàÖÖ²»Í¬µÄ·½Ê½£¬Ö÷ÒªÊÇÒª¿´¸ÄÔìµÄÄ¿µÄºÍËùÊܵÄÏÞÖÆÀ´¾ö¶¨;
ΪÁ˾ßÌ廯˵Ã÷£¬ ÎÒÃÇÒÔÏÂÁÐÈý¸ö°¸ÀýÌṩ¸ø¶ÁÕ߲ο¼ºÍ½»Á÷¡£
1.12306ÏîÄ¿£ºÕû¸öÊÛÆ±»·½ÚµÄһϵÁкËÐÄ×Óϵͳ¶¼¾¹ý¸ß¶È¡°ÔÆ»¯¡±¡£
Ä¿µÄÊÇ¿ÉÒÔ½«ÔÆ»¯ºóµÄ×Óϵͳ¡°°´Ð衱Áé»î²¿ÊðÔÚ²»Í¬µÄÊý¾ÝÖÐÐÄ£¨¹«ÓÐÔÆ»ò˽ÓÐÔÆ£©£¬ÌṩÓÅÖÊ·þÎñ¡£ ÔÆ»¯µÄÊÖ¶ÎÊǽ«×ÓϵͳҵÎñÂß¼ºÍÊý¾Ý¶¼·ÅÔÚGemfire¼¯ÈºÉÏÖ´ÐУ¬
ÀûÓÃMap ReduceµÄ¼¼Êõ£¬½¨Á¢¿Éµ¯ÐÔÀ©Õ¹Æ½Ì¨£¬Ìṩ¡°¸ßÐÔÄÜCPU¼ÆËãÄÜÁ¦¡±¡£
2.ijÊÐÉç±£ÏîÄ¿£º²ÉÈ¡¶Ìƽ¿ìµÄ¾Ö²¿¡°×ÓÏµÍ³ÔÆ»¯¡±£¬Õë¶ÔÓи߲¢·¢ÐèÇó»áµ¼ÖÂÆ¿¾±µÄ×Óϵͳ½øÐиÄÔì¡£¸ÄÔìµÄÊÖ¶ÎÊǽ«×ÓϵͳҵÎñÂß¼ºÍÊý¾Ý·ÅÔÚGemfire½ÚµãÉÏÖ´ÐÐ,
½¨Á¢¿Éµ¯ÐÔÀ©Õ¹Æ½Ì¨£¬ÀûÓÃGemfire·Ö²¼Ê½²¢Ðвéѯ¼¼ÊõÀ´½â¾ö¡°¸ß²¢·¢²éѯ¡±µÄÒªÇó¡£
3.½ðÈÚµ¥Î»POC²âÊÔÏîÄ¿£º ÎÊÌâÔÚÓÚϵͳµÄ²éѯҵÎñÁ¿¶à£¬¹ØÁª±í¸ñ¶à£¬Ôڸ߲¢·¢Çé¿öÏ£¬²éѯ·´Ó¦Ê±¼ä³¤¡£
POCÄ¿µÄÊÇÒªÑéÖ¤ÔÚ²»¸ü¸Ä×ÓϵͳҵÎñÂß¼ÏÞÖÆÏ£¬ÒÔ×îСµÄ´ú¼Û£¬¶Ô¡°Êý¾Ý·ÃÎʲ㠣¨DAO£©¡±½øÐÐÐ޸쬽¨Á¢¿ÉÀ©Õ¹µÄ¡°ÄÚ´æÊý¾Ý»º´æ²ã¡±£¬½â¾ö¡°¸ß²¢·¢²éѯ¡°µÄ·½°¸£»ÁíÍ⣬»¹ÓÐÊý¾Ý¿âÓëGemfire¼¯ÈºÖ®¼ä¡°Ê§Ð§×ªÒÆ
fail over¡±µÄÉè¼Æ¡£ ÒÔ´ËΪ»ù´¡£¬ÒÔºóÔÙ½«ÒµÎñÂß¼Ö𽥷ŵ½Gemfireƽ̨£¬½øÐиÄÔìÉý¼¶¡£
Ò»¡¢12306 »ìºÏÔÆµÄÆôʾ
ÔÚǰÁ½ÆªÎÄÕÂÌáµ½£¬2012Äê´ºÔ˺ó12306³Ð°ìµ¥Î»-Ìú¿ÆÔºÒýÈ롱·Ö²¼Ê½ÄÚ´æÊý¾ÝÍø¸ñ¡± ¼¼Êõ£¬½«ÓàÆ±¼ÆËã/²éѯ×Óϵͳ¸ÄÔìÇ¨ÒÆµ½GemfireÔÆÆ½Ì¨£¬¾Ö²¿½â¾ö12306µÄÖ÷Ҫƿ¾±£»¸ÄÔìºóµÄ×ÓϵͳÔÚ2013Äê´ºÔËʱÉÏÏߣ¬ÆäЧ¹ûÊÇÏÔÖøµÄ£¬ËäÈ»Õû¸öϵͳÔËÐл¹ÊÇÓС±¿¨£¬¶Ù¡±µÈ²»×ãÖ®´¦£¬µ«Ìú¿ÆÔº¶Ô´Ë¼¼ÊõÉî¾ßÐÅÐļá³Ö¸Ä¸ï£¬²ÅÓкóÐøÒ»Á¬´®µÄ×Óϵͳ¸ÄÔì³ö¯¡£ÔÚ2015Äê´ºÔË£¬½¨Á¢Á½µØÈýÖÐÐÄ»ìºÏÔÆµÄ·þÎñģʽ£¬½«´ó²¿·ÖÓàÆ±²éѯÁ÷Á¿Òýµ¼µ½°¢ÀïÔÆÌṩ²éѯ·þÎñ£»´Ë¾ÙµÄÄ¿µÄÊÇÒª½èÖúÔÆ¼ÆËãÊý¾ÝÖÐÐĵÄ×ÊÔ´£¬¡°ÁÙʱÐÔ¡±½â¾öÔÚ´ºÔËÆÚ¼äÓÉÓÚ»¥ÁªÍø¹ºÆ±ºÍˢƱÈí¼þËùÒý·¢µÄÄÑÔ¤²â£¬¸ßÁ÷Á¿£¬ºÍ¸ß²¢·¢ÇëÇ󣬽µµÍϵͳ²»Îȶ¨µÄ·çÏÕ¡£
12306»ìºÏÔÆ³É¹¦°¸Àý×î´óµÄÆô·¢ÊǸøÆóÒµ¿Í»§ºÍÕþ¸®²¿ÃÅ´øÀ´ÐµÄ˼·£¬¾ÍÊǽ«¹Ø¼üÒµÎñµÄ¡°×Óϵͳ¡±¸ÄÔìÇ¨ÒÆµ½ÔÆÆ½Ì¨¼Ü¹¹£¬¸ù¾Ýʵ¼ÊÇé¿ö£¬½«¡°ÔÆ»¯¡±ºóµÄ×Óϵͳ²¿ÊðÔÚ×ÊÔ´·á¸»µÄÔÆ¼ÆËãÊý¾ÝÖÐÐÄ£¨Ë½ÓÐÔÆ»ò¹«ÓÐÔÆ£©¡£
ÀýÈ磬 12306ºËÐÄϵͳÔÚ¾¹ýÈ«Ãæ¸ÄÔìºÍÓÅ»¯ºó£¬ ÿ¸öÔÆ»¯ºóµÄ×Óϵͳ¶¼¾ßÓÐÌØ¶¨µÄ¶ÀÁ¢ÐÔ£¬ÒòΪÏà¹ØÊý¾Ý¶¼·ÅÔÚGemfireÄÚ´æÊý¾ÝÍø¸ñ½Úµã£»ÕâÒâζ×ÅÕâЩ×ÓϵͳÀàËÆ¡°ÔÆ¡±Ò»Ñù£¬
¿ÉÒÔËæ×ÅÒµÎñÐèÇó±ä´ó»ò±äС£¬Ò»·ÖΪ¶à£¬ÈÎÐÔµÄÆ¯ÒƵ½¶à¸ö²»Í¬Êý¾ÝÖÐÐÄÀ´ÐͬºÏ×÷£¬±ÜÃâÔÚITÉ豸·½ÃæµÄÖØ¸´Í¶×Ê£¬
²¢Ìá¸ß×ÊÔ´µÄʹÓÃÂÊ¡£
ÔÆ»¯ºóµÄ×Óϵͳ²¿ÊðÔÚ¶àÊý¾ÝÖÐÐÄ£¬ÐèÒªÌØ±ð×¢ÒâÏÂÁÐÁ½µã½¨Òé £º
1.Èç¹û½«×Óϵͳ²¿ÊðÔÚ¹«ÓÐÔÆÌṩ·þÎñʱ£¬Êý¾ÝÒþ˽µÄ±£»¤ºÍ°²È«ÐÔӦΪÊ×Òª¿¼ÂÇ¡£
2.Èç¹û¹æ»®½«×Óϵͳ²¿ÊðÔÚ¶àÊý¾ÝÖÐÐÄʱ£¬ÔÚϵͳ¿ò¼ÜÉϱØÐ迼ÂÇÉÏÏÂÓÎ×Óϵͳ֮¼äµÄÊý¾Ý´«Êä»òͬ²½/Òì²½µÄÉè¼Æ¡£
ÒÔ12306ΪÀý£¬Á½µØ¶àÖÐÐÄ»ìºÏÔÆµÄ¼Ü¹¹Ê¾ÒâͼÈçÏ£»ÔÚ´ºÔËÊÛÆ±¸ß·åÆÚ¼ä¿ÉÒÔ½«ÓàÆ±²éѯ¹¦Äܲ¿ÊðÔÚ¶à¸ö¹«ÓÐÔÆÊý¾ÝÖÐÐÄÌṩ¿ìËÙ·þÎñ£¨ÀýÈç°¢ÀïÔÆºÍµçÐÅÌìÒíÔÆ£©¡£
¶þ¡¢ÏµÍ³¸ÄÔìÇ¨ÒÆµÄ˼·ºÍÐèÇó
Ëæ×ÅÆóÒµ³É³¤£¬¶ÔÓÚÒ»¸ö¸´ÔӵĴóϵͳÀ´Ëµ£¬ ÆäÒµÎñ¹¦Äܲ»¶ÏÔö¼Ó£¬·þÎñ·½Ê½¶àÑù»¯£¬Êý¾Ý´æ´¢Á¿Ô½À´Ô½´ó£¬µ«ÏµÍ³ÐÔÄÜÔ½À´Ô½Âý£¬¶øÓû§¶ÔÏìӦʱ¼äµÄÒªÇóÔ½À´Ô½Ñϸñ£»ÓÈÆäÊÇÔÚ¹ýÈ¥5ÄêÀÿÄê¶¼ÓÐм¼ÊõµÄÑݽø
£¨´óÊý¾ÝºÍ·Ö²¼Ê½ÄÚ´æÊý¾Ýƽ̨£©ºÍÐÂÒµÎñµÄÑÜÉú£¨ÎïÁªÍøÓ¦Óã¬Éç½»Ó¦ÓÃÆ½Ì¨ºÍÒÆ¶¯Ó¦Óã©¡£
µ±´«Í³¼Ü¹¹ÏµÍ³ÒÑÖð½¥ÎÞ·¨Âú×ãÈÕÇ÷³É³¤µÄÒµÎñÐèÇóʱ£¬ÓÐÁ½ÖÖ·½°¸¿É¹©Ñ¡Ôñ£¬ Ò»ÊÇ´ÓÓ²¼þ×ÅÊÖ£¬scale upµÄÑ¡Ï
¾ÍÊǸü»»ÐÔÄܸüÇ¿´óµÄ·þÎñÆ÷£»¶þÊÇscale outµÄÑ¡Ï´ÓÈí¼þƽ̨×ÅÊÖ£¬ ½øÐÐÓ¦ÓÃϵͳ¸ÄÔ죬²ÉÈ¡µ¯ÐÔ¿ÉÀ©Õ¹µÄ¿ò¼ÜÉè¼Æ¡£
¸ü»»Ó²¼þ·þÎñÆ÷ÊÇ×î¼òµ¥µÄ×ö·¨£¬ µ«ÒÔºó¸ü»»³É±¾»áÔ½À´Ô½¸ß£¬ÏµÍ³ÐÔÄÜÌáÉýÊÇÔ½À´Ô½ÓÐÏÞ¡£ Èí¼þÓ¦ÓÃϵͳµÄ¸ÄÔ죬ÊÇÒ»ÀÍÓÀÒÝ´Ó¸ù±¾×öÆð£¬¸ÄÔì³É±¾ÊÇÓëϵͳµÄ¸´ÔÓ¶ÈÓйأ¬ÊÇÐèÒªÈ«Ãæ¸ÄÔ죿
»¹ÊÇÑ¡ÔñÐԵľֲ¿¸ÄÔì £¿ÕâÐèÒª¸ù¾Ýʵ¼ÊʹÓÃÇé¿öÀ´¾ö¶¨¡£
Õë¶ÔϵͳµÄscale outÉè¼Æ£¬Èç¹ûÒªÍÆ·ÒÔǰµÄ¼Ü¹¹£¬Öؽ¨ÏµÍ³£¬ÄÇÊǸö´ó¹¤³Ì£¬³ý·ÇÓÐÏÂÁÐÈýÖÓÇé¿ö£º
1.ϵͳÒѾÊÇǧ´¯°Ù¿×£¬ ÎÞ·¨ÔÙ´ò²¹¶¡Ò²ÎÞÈ˺óÐøÎ¬»¤
2.ÔÓеĿò¼ÜÉè¼ÆÒÑÓÅ»¯µ½¼«Ö£¬ÎÞÂÛÈçºÎÓÅ»¯£¬¶¼ÒѾÎÞ·¨Âú×ãÈÕÒæÔö¼ÓµÄÒµÎñÐèÇó¡£
ÀýÈ磬12306¾ÍÊǵäÐÍÀý×Ó¡£
3.ÒµÎñÁ÷³ÌºÍ×éÖ¯¹ÜÀí·½Ê½Óо޴óµÄ±ä¶¯£¬ ÐèÒªÖØ½¨ÏµÍ³
·ñÔò£¬×îʡǮºÍ×îÓÐЧµÄ·½·¨¾ÍÊÇÕë¶Ôϵͳƿ¾±×ö¡°¾Ö²¿¸ÄÔ족À´Ìá¸ßÐÔÄÜ£¬±£»¤¹ýÈ¥µÄͶ×Ê¡£ÀýÈ磬Éç±£ÏîÄ¿¾ÍÊǵäÐÍÀý×Ó
ÔÚ´ËÆªÎÄÕ£¬ÌÖÂÛµÄÖØµãÊÇÈçºÎ½«ÏµÍ³¸ÄÔìÇ¨ÒÆµ½ÔÆÓ¦ÓÃÆ½Ì¨£¬ ÓÉÓÚÿ¸öϵͳ¶¼ÓÐÆäÌØÊâÐԺ͸´ÔÓÐԵĿª·¢±³¾°£¬ÆäÉè¼ÆµÄϵͳ¿ò¼Ü£¬Ëù²ÉÓõÄÈí¼þƽ̨ºÍ¿ª·¢¼¼ÊõÒ²¶¼Ëæ×Åʱ¼äÑݽø¶ø²»Ò»Ñù¡£
Òò´Ë¸ÄÔìµÄ·½Ê½ÐèÒªÒÀ¾Ýʵ¼ÊµÄ»·¾³À´½øÐС£
1. 12306 ϵͳ¸ÄÔì˼·ºÍÐèÇó ¨C °´½×¶ÎÖð²½ÔÆ»¯ºËÐÄ×Óϵͳ
ÔÀ´ÏµÍ³ÊÇʹÓÃStored Procedure¿ª·¢£¬ÏµÍ³ÒѾÓÅ»¯µ½¼«Ö£¬ºÜÄÑÔÙ½øÒ»²½ÌáÉýÐÔÄÜ¡£
Èç¹û²ÉÓÃscale upµÄÓ²¼þÉý¼¶£¬Í¶×ʹýÓÚÅÓ´ó£» Ëæ×ÅÌú·»ù´¡½¨Éè²»¶ÏÀ©´ó£¬ÒµÎñÁ¿Ò²»áËæ×ÅÔö¼Ó£¬ÎÞ·¨±£Ö¤Ó²¼þÉý¼¶ºóµÄϵͳÐÔÄÜ»áÂú×ãδÀ´ÒµÎñ³É³¤µÄÐèÇó¡£ÁíÍ⣬
¾ÍÊÇ´ºÔ˸߷åÆÚ¹ýºó¸ÃÈçºÎ´¦ÖùýÊ£µÄUnixСÐÍ»úÒ²±ØÐëÁÐΪ¿¼ÂÇ¡£
³Ð°ìµ¥Î»- Ìú¿ÆÔº¾¹ý×ÐϸÆÀ¹Àºó£¬ÈÏΪ¸ßÁ÷Á¿ºÍ¸ß²¢·¢ÎÊÌâ±ØÐè²ÉÓÃÔÆ¼ÆËã¿Éµ¯ÐÔÀ©Õ¹µÄƽ̨ºÍ¼¼ÊõÀ´½â¾ö¡£
ÒÔ·Ö²¼Ê½ÄÚ´æÊý¾ÝÍø¸ñ¡± - Gemfire¼¼ÊõΪÇÐÈëµã£¬ÒÔÓàÆ±¼ÆËã/²éѯ×ÓϵͳΪÊÔµãÏîÄ¿¡£
²ÉÈ¡ÎÈÍ׵ĸÄÔì²ßÂÔ£¬ ÖðÄêÖ𲽸ÄÔìºÍÓÅ»¯Æä×Óϵͳ£¬½â¾öһϵÁл·½ÚÉÏµÄÆ¿¾±£¬±£Ö¤ÔÚ¸ÄÔìÆÚ¼äÕû¸ö12306ϵͳµÄÎȶ¨ÔËÐС£
ÔÚ¸ÄÔì³õÆÚ£¬Ð¾ÉÁ½Ì×ϵͳ±ØÐëͬʱ²¢ÐÐÔËÐС£ ÀûÓÃCDN£¨Content
Delivery Network£©µÄÁ÷Á¿¹ÜÀí¹¦ÄÜ£¬ Öð½¥½«Á÷Á¿¼Óѹµ½Gemfire¼¯Èº£¬²âÊÔ¼¯ÈºÔڸ߸ºÔØÏÂÊÇ·ñÄÜÆ½Îȹý¶É¸ß·åÊÛÆ±ÆÚ¡£
²ÉÓá°¶àÖØGemfire¼¯Èº¡±Ï໥±¸·ÝµÄÉè¼Æ£¬Í¬Ê±²¢ÐÐÔËÐУ¬ÎªÎ´À´¡°¶àÊý¾ÝÖÐÐÄ¡±µÄ²¿Êðµ±ÊÔµãºÍÆÌ·¡£
2. É籣ϵͳ¸ÄÔì˼·ºÍÐèÇó ¨C ¶Ìƽ¿ìµÄ¾Ö²¿×ÓÏµÍ³ÔÆ»¯
Éç±£ÖÆ¶ÈÖðÄê¸Ä¸ï£¬Ð±àÖÆ×éÖ¯¼Ü¹¹²»¶ÏÀ©´ó£¬ÐÂÒµÎñ²»¶ÏÔö¼Ó£¬Ê¡ÊÐÉç±£ÈËÊý´ÓÊý°ÙÍò¼¶±ðµ½Ä³Ð©È˿ڴóÊ¡³¬¹ýÒڵļ¶±ð£»ÕâЩÉç±£½É·Ñ×ÊÁÏÐèÒª±£´æ´ïÊýÊ®ÄêÒÔÉÏ£¬
ÓÀËæÒ»Éú£¬ ÿÄê¶¼ÓÐÊý°ÙTÉõÖÁPÁ¿¼¶µÄÊý¾Ý´æ´¢µ¥Î»¡£Éç±£µ¥Î»±ØÐ뿼ÂÇÈçºÎ´æ´¢ÕâЩ×ÊÁÏ£¿ ÈçºÎÔÚ´óÊý¾ÝÁ¿Çé¿öÏÂÌṩ¿ìËÙ²éѯ·þÎñ£¿
ÈçºÎ½¨ÉèÒ»¸öITƽ̨ÄÜËæ×ÅδÀ´ÒµÎñ³É³¤¶ø²»¶ÏµÄµ¯ÐÔÀ©ÈÝ£¬´ËΪÖ÷ÒªµÄ¸ÄÔì˼·¡£
É籣ϵͳÊǶÔÍâµÄ¹«¹²·þÎñƽ̨ÓÚ2008ÄêÉÏÏߣ¬´Ëƽ̨ÊÇÒÔ»¥ÁªÍøÎªÔØÌ壬¿ªÍ¨ÆóÒµµ¥Î»ºÍ¸öÈËÍøÉÏÉ걨ҵÎñµÄ·þÎñ¡£
ÔÚÃæ¶ÔÈÕÒæÔö¼ÓµÄÍøÂçÒµÎñ°ìÀíÐèÇ󣬯½Ì¨Ó²¼þϵͳ£¨¶à²¿¸ß¶ËUnixСÐÍ»ú£©Ëù³ÐÔØÑ¹Á¦Öð½¥¼Ó´ó¡£ ÏµÍ³Ó²¼þÒÑÖð½¥³öÏÖÆ¿¾±¡£ÔÚ2012Äê1Ô¼¯ÖÐÉ걨ÆÚ¼ä£¬
ϵͳµÄCPU£¨°üº¬Ó¦Ó÷þÎñÆ÷ºÍÊý¾Ý¿â·þÎñÆ÷£©¸ß´ï90%ÒÔÉÏ£¬ µ¼ÖÂϵͳ²»Îȶ¨£¬ÎÞ·¨Õý³£·ÃÎÊ£¬Ó°ÏìÖØ´ó¡£
¾¹ýÉç±£Ïà¹Øµ¥Î»×ÐϸÆÀ¹À£¬È·Á¢ÏµÍ³¸ÄÔìµÄ²ßÂÔÓ¦ÓÉÁ½·½Ãæ×ÅÊÖ£¬ Ò»Êǽ¨Á¢ÐéÄ⻯µÄÔÆ»·¾³£¬
¶þÊÇÕë¶Ô×Óϵͳƿ¾±½øÐоֲ¿¸ÄÔ죬 ¸ÄÔìºóµÄ×Óϵͳƽ̨ÐèÒªÖ§³Ö¡°µ¯ÐÔÀ©Õ¹¡±£¬Âú×ãδÀ´ÈÕÒæÔö¼ÓµÄÍøÉÏÒµÎñ¡£
²ÉÓÃVMware¼¼Êõ´î½¨ÐéÄâ»¯ÔÆÆ½Ì¨À´ÌáÉý»ù´¡¼Ü¹¹µÄÀ©Õ¹ÄÜÁ¦£¬²ÉÓÃPivotal
Gemfire ¿Éµ¯ÐÔÀ©Õ¹µÄ¸ßËÙ»º´æ¹¦ÄÜ£¬ Ö§³Ö¸ß²¢·¢¡°ÈȵãÊý¾Ý¡±²éѯ·þÎñ£¬½µµÍÔÓÐÊý¾Ý¿âµÄI/OÆ¿¾±£¬Ìá¸ßÕû¸öϵͳÐÔÄܺÍÎȶ¨ÐÔ¡£
3. ½ðÈÚµ¥Î»POC²âÊÔ¸ÄÔì˼·ºÍÐèÇó ¨C½¨Á¢¿ÉÀ©Õ¹µÄ ¡°·Ö²¼Ê½Äڴ滺´æÊý¾Ý²ã¡±
½ðÈÚµ¥Î»ÏµÍ³ÅÓ´ó¸´ÔÓ£¬ËùÓеÄ×Óϵͳ´ÓÉè¼Æµ½¿ª·¢¶¼ÐèÒªÑϸñ×ñÑͳһ¿ª·¢Á÷³Ì£¬
ºËÐÄ×ÓϵͳҵÎñÂß¼²»ÇáÒ׸ü¸Ä¡£¶Ôϵͳ¶øÑÔ£¬²éѯҵÎñÁ¿¶à£¬Êý¾ÝÁ¿´ó£¬¹ØÁª±í¸ñ¶à£¬Ôڸ߲¢·¢Çé¿öÏ£¬²éѯ·´Ó¦Ê±¼ä³¤¡£
POC²âÊÔÄ¿µÄ£º
ÔÚ²»¸ÄϵͳҵÎñÂß¼Çé¿öÏÂ, ¶Ô¡°Êý¾Ý·ÃÎʲã DAO ¨C Data Access
Object¡±½øÐиÄÔ죬 ½¨Á¢¿ÉÀ©Õ¹µÄ ¡°·Ö²¼Ê½Äڴ滺´æÊý¾Ý²ã¡±£»Ä¿µÄÊÇÌá¸ßÒµÎñ²éѯÐÔÄÜ£¬¿ìËÙ·´Ó¦²éѯ½á¹û£¬½µµÍÔÓÐÊý¾Ý¿âµÄI/OÆ¿¾±£¬Ìá¸ßÕû¸öϵͳÐÔÄÜ¡£
¿¼ÂÇϵͳÎȶ¨ÐԺͰ²È«ÐÔ£¬ »¹ÐèÒªÑéÖ¤¡°·Ö²¼Ê½Äڴ滺´æÊý¾Ý²ã¡±Óë¹ØÏµÐÍÊý¾Ý¿âÖ®¼ä¡°Ê§Ð§×ªÒÆ
fail over¡±µÄÉè¼Æ¡£
Èý¡¢12306ϵͳ¸ÄÔìÇ¨ÒÆµ½Gemfireƽ̨
ÔÚ×î³õµÄ¿ò¼ÜÉè¼ÆÒÑ¿¼ÂÇϵͳÐÔÄÜÎÊÌ⣬ËùÒÔʹÓÃStored Procedure¿ª·¢À´ÌáÉýϵͳִÐÐËÙ¶È¡£´ËÉè¼ÆË¼Â·ÊDzο¼µÂ¹úºÍÓ¢¹ú»¥ÁªÍøÊÛÆ±¾Ñé
¨C ¼´×ÜÊÛÆ±Á¿20%µÄ±ÈÂÊÊÇ͸¹ý»¥ÁªÍøÊÛÆ±£¬Ò²¾ÍÊÇ˵µ±³õ12306ϵͳ¹æ»®ÊÇÒªÂú×ãÿÌìÊÛÆ±Á¿100ÍòÕŵÄÐèÇóÀ´Éè¼Æ¡£
ÔÚ2012Äê´ºÔË12306¶ÔÍ⿪·Åʱ£¬Ó¿È뽫½ü2ǧÍòÈ˴εǼ£¬Ô¶Ô¶³¬¹ýµ±³õµÄÔ¤ÉèÄ¿±ê£¬µ«ÓÖÊÜÏÞÓÚϵͳ¼Ü¹¹ÎÞ·¨µ¯ÐÔÀ©Õ¹£¬µ¼ÖÂÕû¸ö12306ϵͳÀïÀïÍâÍâ¶¼²»Îȶ¨£¬
ÎÞ·¨Õý³£·ÃÎÊ¡£ÔÚ²ÉÓÃPivotal-GemfireÔÆ»¯ºóµÄ12306ϵͳÓÐÁË¡°ÖÊÓëÁ¿¡°µÄ´óÔ¾½ø£¬ÔÚ2015Äê´ºÔËÊÛÆ±¸ß·åÈÕÒÑ´ï560ÍòÕÅ£¬Õ¼ÁËÕûÌåÊÛÆ±Á¿µÄ60%£»±ÜÃâ¹ýÈ¥ÈÕÒ¹ÅŶӹºÆ±µÄÍ´¿à£¬
Ò²½ÚÊ¡´óÁ¿Éç»á³É±¾¡£
ÓÉÓÚ12306ÒµÎñÂß¼¸´ÔÓ£¬ÏµÍ³ÅÓ´ó£¬ ÔÚ´ËÖ»ÒÔÓàÆ±¼ÆËã/²éѯΪ°¸Àý¡£ÓйØÕû¸öϵͳµÄÒµÎñÂß¼Éè¼Æ²»ÔÚ´ËÌÖÂÛ¡£ÏÂÁеÄÃèÊöÈç¹ûÓÐÎó£¬
Ò²Çë¸÷λÏȽøÖ¸Õý¡£
2012Äê ¸ÄÔìǰµÄÓàÆ±¼ÆËã/²éѯ×Óϵͳ¼Ü¹¹ÃèÊö
1. ·¾Ö¡°ÊµÊ±¡±ÌṩÊÛÆ±¼Ç¼
»ð³µÆ±µÄϯλÏúÊÛÊÇÓÉÿ¸ö·¾Ö¹æ»®ºÍµ÷¿Ø£¨Ìú·×ܹ«Ë¾¹²ÓÐ18¸ö·¾Ö£©£¬ ¶ø12306Óëÿ¸ö·¾ÖÊǹ²Ïíͬһ¸ö¡°Æ±¿â¡±¡£
»»¾ä»°Ëµ£¬¡°ÏßÉÏ¡±µÄ12306ÊÇÓë¡°ÏßÏ¡±µÄ»ð³µÕ¾µãÊÛÆ±´°¿Ú£¬µç»°ÊÛÆ±£¬ºÍ¸÷µØµÄÊÛÆ±µãÇÀƱ¡£Ã¿¸ö·¾Ö½«Ã¿ÕÅÆ±µÄÏúÊۼǼ¶¼¡°ÊµÊ±¡°´«Ë͵½12306ÔÚÌú×ÜÊý¾ÝÖÐÐÄ¡°Ö÷Êý¾Ý¿â·þÎñÆ÷¡±×ö»ã×Ü¡£
2. Êý¾Ý¿â¸´ÖƵ½ÓàÆ±¼¯Èº£º
ÔÚÌú×ܵÄÊý¾ÝÖÐÐÄ - ÓàÆ±¼ÆËã·þÎñÆ÷¼¯ÈºÊÇÓÉ¡°Ö÷Êý¾Ý¿â·þÎñÆ÷¡±ºÍ72²¿UnixСÐÍ»ú×é³É£»Ö÷Êý¾Ý¿â·þÎñÆ÷»ã×ܸ÷¸ö·¾Ö´«Êä¹ýÀ´µÄÊý¾Ýºó£¬ÀûÓÃÊý¾Ý¿â¸´ÖƵĻúÖÆ£¬ÊµÊ±½«Êý¾Ý¡°¸´ÖÆ¡°µ½72²¿UnixСÐÍ»ú¡£
3. ²¢Ðд¦ÀíÓàÆ±¼ÆË㣺 ÆäÖÐ8²¿Ð¡ÐÍ»ú×öÊÛÆ±Ô¤´¦Àí£¬ÔÙ½«Ô¤´¦Àí½á¹ûË͵½64²¿Ð¡ÐÍ»ú£¬64²¿Ð¡ÐÍ»ú¡°Í¬Ê±²¢ÐС±´¦ÀíÓàÆ±¼ÆËã¡£
4. Ó¦Óûº´æ·þÎñÆ÷£º 64²¿Ð¡ÐÍ»ú½«ÓàÆ±¼ÆËãºóµÄ½á¹û»ã×ܲúÉúÓàÆ±±í£¬½«ÓàÆ±±í·ÅÖÃÔÚǰ¶ËµÄÓ¦Óûº´æ·þÎñÆ÷¼¯Èº£»´Ë¾ÙÊÇÒª½â¾öÔڸ߲¢·¢µÄÇé¿öÏ£¬»º´æ·þÎñÆ÷Ìṩ¸ü¿ìËÙµÄÓàÆ±²éѯ·þÎñ¡£
5. CDN(Content Delivery Network)·þÎñÆ÷£º12306×îÍâΧ²¿ÊðCDNÍøÂ磬ÆäÄ¿µÄÊÇʹÓû§¿É¾Í½üÈ¡µÃËùÐèÐÅÏ¢£¬½«Óû§µÄÇëÇóÖØÐµ¼ÏòÀëÓû§×î½üµÄ·þÎñ½Úµã½â¾ö
InternetÍøÂçÓµ¼·µÄ×´¿ö£¬»¹Óе÷Õû¸ºÔؾùºâµÄ¹¦ÄÜ£¬Ìá¸ßÓû§·ÃÎʵÄÏìÓ¦ËÙ¶È¡£
6. ÓàÆ±ÐÅÏ¢¸üлúÖÆ£ºÓàÆ±ÐÅÏ¢¸üÐÂÊÇÒÔ¡°³µ´Î¡°Îª»ù×¼£¬Ã¿¸ô10·ÖÖÓ¸üÐÂÒ»´Î¡£µ±Óû§Ìá½»¡°Çø¼äÕ¾µã¡±µÄÓàÆ±²éѯʱ£¬ÏÈ´ÓCDN·þÎñÆ÷²éѯ×ÊÁÏ£¬¼ÙÈçCDNµÄ×ÊÁÏÒѳ¬¹ý10·ÖÖÓ£¬»á´ÓÓ¦Óûº´æ·þÎñÆ÷Ë÷È¡×îеÄÊý¾Ý¡£Í¬Àí£¬µ±Ó¦Óûº´æ·þÎñÆ÷µÄ×ÊÁϳ¬¹ýʱЧ£¬»á´¥·¢ÓàÆ±¼ÆËãÁ÷³Ì£¬ÖØÐ¼ÆËãÓàÆ±²úÉúÓàÆ±±í£¬
Ìá½»¸øÓ¦Óûº´æ·þÎñÆ÷¡£Ã¿¸ô10·ÖÖÓ¸üеIJÎÊýÊǿɵ÷ÕûµÄ¡£
12306¸ÄÔìÔÔòºÍÄ¿±ê
£¨1£©É趨ÐÔÄÜÖ¸±ê£º
ÒÔÓàÆ±¼ÆËã×ÓϵͳΪÀý£¬Gemfire¼¯ÈºµÄÓàÆ±¼ÆËãÐÔÄÜÖ¸±êÐèÒª´ïµ½10£¬000 TPSÒÔÉÏ£¬ ²¢¿ÉÒÔËæ×ÅÒµÎñ³É³¤×öµ¯ÐÔÀ©Õ¹¡£ÅäºÏÓ¦Óûº´æ·þÎñÆ÷¼¯ÈººÍ×îǰ¶ËµÄCDN¸ºÔؾùºâ·þÎñÆ÷¼¯Èº£¬Ô¤¹À12306¿ÉÒÔÖ§³ÖÿÃë´ï°ÙÍò´ÎµÄÓàÆ±²éѯ¡£´Ë²¿·ÖµÄϵͳÐÔÄÜÊÇÓë·þÎñÆ÷CPUÀàÐÍ£¬
ÄÚ´æ´óС£¬Gemfire½ÚµãÊýºÍx86·þÎñÆ÷ÊýÁ¿¶¼ÓйØÁª¡£
£¨2£©ÓàÆ±¼ÆËã´¦ÀíÄÜÁ¦¿ÉËæ×ÅÐé»úµÄÔö¼Ó¶øÏßÐÔÔö¼Ó
ÓàÆ±²éѯÊÇÒª·´Ó³×îеÄÓàÆ±Çé¿ö£¬×÷Ϊ¹ºÆ±µÄÒÀ¾Ý¡£ ÔÚÉÏÆªÎÄÕÂÒÑ̸µ½ÓàÆ±¼ÆËãµÄ¸´ÔÓ¶È£¬ÐèÒªºÜÇ¿´óµÄCPU´¦ÀíÄÜÁ¦Îªºó¶ÜÀ´¼ÆËãÿ¸öÇø¼äÕ¾µãµÄÓàÆ±Á¿£»½«¼ÆËã½á¹û·ÅÖõ½»º´æÊý¾Ý·þÎñÆ÷ºÍCDN·þÎñÆ÷¡£ÓàÆ±¼ÆËãÊÇÀûÓÃGemfire
Data GridºÍMap ReduceµÄ¼¼ÊõÌṩ¾Þ´óCPU´¦ÀíÄÜÁ¦¡£
£¨3£©ÔÚ²»¸Ä±äÔÓеÄÌåϵ¿ò¼ÜÉÏÔö¼ÓGemfire¼¯Èº£¬ оÉÁ½Ì×ϵͳ²¢ÐÐÔËËã
Ϊȷ±£12306Éú²ú»·¾³µÄÎȶ¨ÐÔºÍÆ½Îȹý¶É£¬Ð¾ÉÁ½Ì×ϵͳ±ØÐëͬʱÔËÐУ¬ÓÉ×îǰ¶ËµÄCDN·þÎñÆ÷¿ØÖÆ·ÃÎÊÁ÷Á¿£¬Öð½¥½«ÐèÒªÓàÆ±¼ÆËãµÄÇëÇó¼Óѹµ½Gemfire¼¯Èº£¬²âÊÔGemfireµÄ³ÐÔØÄÜÁ¦£¬¼ìÑé¿ÉÀ©Õ¹µÄ¹¦ÄÜ¡£
£¨4£©ÏµÍ³¸ß¿ÉÓÃÐÔ£¨High Availability£©
GemfireµÄÊý¾Ý½Úµã¶¼ÓÐÆäËü½ÚµãµÄ±¸·ÝÊý¾Ý£¬ Ò²¿ÉÒÔ½«ÄÚ´æÊý¾Ý³Ö¾Ã»¯µ½Ó²ÅÌ»òÊÇͬ²½/Ò첽дµ½Êý¾Ý¿â¡£
£¨5£©x86·þÎñÆ÷
¿¼ÂÇδÀ´¶àÊý¾ÝÖÐÐĺͻìºÏÔÆµÄ²¿Ê𣬱ØÐëʹÓÃx86·þÎñÆ÷ΪÉú²ú»ú¡£
¸ù¾Ý12306¸ÄÔìÉè¼ÆÔÔòÔÚ²»¸Ä±äÔÓеÄÌåϵ¿ò¼ÜÉÏÔö¼ÓGemfire¼¯Èº£¬ ÔÚ¹ý¶ÉÆÚ¼ä£¬Ð¾ÉÁ½Ì×ϵͳ²¢ÐÐÔËË㣬ÔÚ¹ý¶ÉÆÚºó£¬ÒÔGemfire¼¯ÈºÎªÖ÷¡£
ËùÒԴ˲½µÄ¸ÄÔìÊÇÕë¶ÔÉÏÊö¡±¸ÄÔìǰµÄÓàÆ±¼ÆËã/²éѯ×Óϵͳ¼Ü¹¹¡±µÄµÚ2ÏîºÍµÚ3Ïî½øÐзÖÎöºÍ¸ÄÔì¡£
12306¸ÄÔì²½Ö裺
£¨1£©ÏµÍ³¼Ü¹¹¸ÄÔìºÍÊý¾ÝÉÏÔØ
Ϊȷ±£12306Éú²úϵͳµÄÎȶ¨ÔËÐÐºÍÆ½Îȹý¶É£¬ÔÚ²»¸Ä±äÔÓеÄÌåϵ¿ò¼ÜÉÏÔö¼ÓGemfire¼¯Èº£¬ оÉÁ½Ì×ϵͳ²¢ÐÐÔËËã¡£ÄǾͱØÐ뿼ÂÇÈçºÎ½«Êý¾Ý´ÓÊý¾Ý¿âʵʱͬ²½µ½Gemfire¼¯Èº×öÓàÆ±¼ÆËã¡£
A£®Êý¾Ý¿â¸´ÖÆ·þÎñÆ÷ £ºÔö¼ÓÒ»²¿Êý¾Ý¿â·þÎñÆ÷£¬½«Ìú×ÜÊý¾ÝÖÐÐÄ¡°Ö÷Êý¾Ý¿â·þÎñÆ÷¡±»ã×ܵÄÊý¾Ýʵʱ¸´ÖƵ½´Ë²¿Êý¾Ý¿â·þÎñÆ÷¡£
B£®ÊµÊ±Í¬²½»úÖÆºÍSQL½âÎö·þÎñÆ÷ £º ´Ë²½ÖèÊÇ´ÓÊý¾Ý¿âÈ¡³öLogÊý¾Ý²¢½âÎöSOLÓï¾ä£¬ÒòΪÔÀ´´úÂëÊÇÓÃStored
Procedure¿ª·¢µÄ¡£
C£®Rabbit MQ·þÎñÆ÷ £ºÍ¬²½»úÖÆ·þÎñÆ÷½«½âÎö¹ýµÄSQLÓï¾ä͸¹ýRabbit MQ´«Ê䏸Gemfire¼¯Èº×öÓàÆ±¼ÆËã¡£
D£®Gemfire¼¯Èº½«ÓàÆ±¼ÆËã½á¹û»ã×ܺó£¬Ìá½»¸øÇ°¶ËµÄÓ¦Óûº´æ·þÎñÆ÷ÌṩÓàÆ±¿ìËÙ²éѯ¡£
£¨2£©ÏµÍ³Êý¾Ý½á¹¹·ÖÎö
Êý¾Ý½á¹¹·ÖÎöºÍÉè¼ÆÊÇÔÚ¸ÄÔì¹ý³ÌÖÐ×î¹Ø¼üµÄÒ»²½£¬Ó°Ïìµ½ºóÐøÐÔÄܵÄÌáÉý£» ÀûÓá°Êý¾ÝÍø¸ñShare Nothing¡±µÄÌØÐÔ,
½«Êý¾ÝÇиî, °Ñ ¡°Êý¾Ý¹ØÁªÐÔÇ¿¡±µÄÊý¾Ý·ÅÔÚͬһ¸öGemfire Êý¾Ý½Úµã£¬ÔÙÅäºÏÒµÎñÂß¼µÄÉè¼Æ£¬½µµÍ½ÚµãÖ®¼äÊý¾Ý½»»»µÄÑÓ³Ù£¬Ìá¸ßϵͳ´¦ÀíÄÜÁ¦¡£
£¨3£©Benchmark £¨»ù×¼µã£©²âÊÔ
½øÐÐBenchmark²âÊÔ, ÆÀ¹Àÿ²¿Gemfire·þÎñÆ÷µÄTPSºÍÓàÆ±¼ÆË㷴Ӧʱ¼ä
-ÑéÖ¤Gemfire¼¯ÈºÐÔÄÜ¿ÉËæ×Åx86Ðé»úµÄÔö¼Ó¶øÏßÐÔÔö¼Ó
²âÊÔ¡°ÊµÊ±Í¬²½¡±»úÖÆ, Á¿²âÊý¾Ýͬ²½µ½Gemfire¼¯ÈºµÄÎȶ¨ÐÔ£¬ÑÓ³ÙºÍÍÌÍÂÁ¿
£¨4£©ÏµÍ³Îȶ¨ÐÔ, °²È«ÐÔºÍHAÉè¼Æ
ÔÚGemfireµÄÊý¾Ý½Úµã¶¼ÓÐÆäËü½ÚµãµÄ±¸·ÝÊý¾ÝÀ´´ïµ½HAµÄÄ¿µÄ£¬Ò²¿ÉÒÔ½«ÄÚ´æÊý¾Ý³Ö¾Ã»¯µ½Ó²ÅÌ»òÊÇÊý¾Ý¿â¡£
ʹÓÃGemfire¸ÄÔìµÄʵʩÁ÷³Ì£º
1. ÐèÇó·ÖÎö½×¶Î£º
ÐèÇóµ÷ÑУ¬È·¶¨¸ÄÔì·½°¸¡¢·ÖÎöÊý¾Ý±í½á¹¹¡¢Ñù±¾Êý¾Ý¡¢Êý¾ÝÁ¿¼°Ó¦Ó÷ÃÎÊÌØÐÔÐÅÏ¢
2. ¼Ü¹¹Éè¼Æ£º
Éè¼ÆRegion½á¹¹£¬È·¶¨·ÖÇø·½Ê½£¬ºÍ Éè¼Æ¶þ¼¶Ë÷Òý
Êý¾ÝÇиpartition£©·ÅÔÚGemfireµÄ½Úµã£¬ ÿ¸ö½ÚµãÊý¾ÝÁ¿´óСÊǸù¾ÝÎïÀí»úÄÚ´æÀ´¾ö¶¨¡£ÀýÈ磬
ÔÚ°¢ÀïÔÆµÄ½ÚµãÒ»°ãÊÇ30G×óÓÒ£¬ÔÚÌú×ÜÊý¾ÝÖÐÐĵĽڵãÊÇ60G-120G×óÓÒ¡£ ´ÓÏîÄ¿¾ÑéÀ´Ëµ£¬GemfireÊý¾Ý½ÚµãÒÔ²»³¬¹ý128G¿ÉµÃµ½×î¼ÑЧ¹û¡£
ÀûÓÃData GridºÍMap ReduceµÄ·Ö²¼Ê½¼¼ÊõÌṩǿ´óµÄCPU´¦ÀíÄÜÁ¦¡£
ʹÓõ½µÄGemfire¹¦Äܲο¼ÏÂÁÐÃèÊö
3. ±àÂëºÍµ¥Ôª²âÊÔ£º
12306ÊDzÉÓÃStored Procedure¿ª·¢£¬±ØÐ뽫Stored
Procedure½âÎö£¬ ²ÉÓÃJava¿ª·¢ºÍ±àÂ룬²¢½«ÒµÎñÂß¼´úÂëºÍÊý¾Ý¶¼·ÅÔÚGemfire½Úµã£¬ ´Ë¾Ù¿ÉÒÔ´ïµ½×î¸ßµÄϵͳÐÔÄÜ
µ¥Ôª²âÊÔ
4. ¼¯³É²âÊÔ/׼ȷ¶È²âÊÔ/ÐÔÄܵ÷ÓÅ£º
ÔÚ¼¯Èº»·¾³Ï½øÐÐ׼ȷ¶È²âÊÔ
ÔÚ¼¯Èº»·¾³Ï½øÐÐÐÔÄܼ°Ñ¹Á¦²âÊÔ
ÒÀ¾Ý²âÊÔ½á¹û½øÐÐÐÔÄܵ÷ÓÅ
ÐÔÄܵ÷ÓÅ¿ÉÄÜÐèÒªµ÷Õûϸ²¿¼Ü¹¹µÄÖØÐÂÉè¼Æ
5. HAºÍÈȲ¿Êð²âÊÔ
6. ÏßÉÏÔËά£º
´´½¨Release°æ±¾²¢ÄÉÈë¹ÜÀí
ÅäÖò¿ÊðÉú²ú»·¾³²¢½øÐгÖÐø¼à¿Ø
Ö÷ÒªµÄGemfire¹¦ÄÜÌØÐÔ£º
ÔÚ12306¸ÄÔì¹ý³ÌÖУ¬Ê¹Óõ½ÏÂÁÐGemfireµÄ¹¦ÄÜÌØÐÔ£º
Rich Objects: ÒÔobjectsµÄÐÎʽÌåÏֺͱàÂ룬×Ô¼º¶¨ÒåÊý¾Ý½á¹¹
Elastic Growth w/o pausing £º µ¯ÐÔÀ©Õ¹ºÍÈȲ¿Êð
Partitioned Active Data £º ¸ù¾ÝÊý¾ÝÊôÐÔ£¬ÀýÈ磺¿Í»§£¬¶©µ¥£¬³µ´Î£¬Õ¾Ãû£¬×öºÏÀíµÄÊý¾ÝÇи·ÅÔÚ²»Í¬µÄÊý¾Ý½Úµã¡£
Redundancy for instant FT£ºHAµÄÉèÖÃ
Colocated Active Data£º share nothingµÄ¸ÅÄ½«¹ØÁªÐÔÇ¿µÄÊý¾Ý·ÅÔÚͬһ¸öGemfire
Êý¾Ý½Úµã£¬ ÀýÈ磬³µ´Î£¬Õ¾Ãû
Replicated Master Data£º Êý¾ÝÁ¿²»´óµÄ³£ÓÃÊý¾Ý£¬ÀýÈ磺վÃû×ÖµäºÍϯλÀà±ðµÈ£¬ÔÚÿ¸öGemfire½Úµã¶¼ÓÐÒ»·Ý¿½±´£¬´Ë¾ÙÊÇÒª¼õÉÙÊý¾ÝµÄ½»»»¡£
Server-side Event Listeners£º µ±Êý¾ÝÔÚServer¶Ë²úÉú±ä»¯Ê±£¬»á´¥·¢ÏàÓ¦µÄ²Ù×÷
Client-side Durable Subscriptions£ºµ±Server¶ËÂú×ã¿Í»§¶Ë¶©ÔĵÄijЩÌõ¼þʱ£¬»áÍÆËÍÐÅÏ¢
Parallel Map-Reduce Function Execution£º
³µ´ÎÓàÆ±ÔÚÿ¸öGemfire ½Úµã²¢ÐÐÔËË㣬ÔÙ»ã×ÜÔËËã½á¹û
Parallel OQL Queries
Continuous Queries
LRU Overflow to disk in native format
for fast retrieval
Parallel, Shared Nothing Persistence
to disk w/ online backup
Asynchronous Write Behind, Write Through
or Read Through
ËÄ¡¢Éç±£ÏîÄ¿×Óϵͳ¸ÄÔìÇ¨ÒÆµ½GemfireÔÆÆ½Ì¨
Éç±£É걨×Óϵͳ¸ÄÔìÔÔòºÍÄ¿±ê
´Ó·ÃÎÊÁ¿ºÍ²¢·¢Á¿¹æÄ£À´Ëµ£¬Éç±£ËùÓöµ½µÄÎÊÌâÔ¶Ô¶Ñ·ÓÚ12306ËùÅöµ½µÄÌôÕ½¡£×Óϵͳ¸ÄÔìÊÇ»ùÓÚVMwareÐéÄâ»¯ÔÆÆ½Ì¨»ù´¡ÉÏÌáÉýÉ걨ϵͳµÄ²éѯÐÔÄÜ¡£
£¨1£©É趨ÐÔÄÜÖ¸±ê£º
ÐÔÄÜÖ¸±êÐèÒª´ïµ½ÔÓÐ×ÓϵͳÐÔÄÜ50±¶ÒÔÉÏ
£¨2£©Õë¶ÔÏÂÁÐÁ½¸ö×Óϵͳƿ¾±½øÐоֲ¿¸ÄÔì
½É·Ñ¹¤×ÊÉ걨
³ÇÕòÖ°¹¤Ôö¼Ó
£¨3£©¸ÄÔìºóµÄ×ÓϵͳÐÔÄÜ¿ÉËæ×ÅGemfire½ÚµãÐé»úµÄÔö¼Ó¶øÏßÐÔÔö¼Ó
£¨4£©ÏµÍ³¸ß¿ÉÓÃÐÔ£¨HA£©
²Î¿¼12306ÃèÊö¡£
×Óϵͳƿ¾±µÄ¾Ö²¿¸ÄÔì²½Ö裺
É籣ϵͳÊǺܸ´ÔÓÅÓ´óµÄϵͳ£¬ÓÉÉϰٸöÄ£¿é¹¹³É¡£´Ëϵͳ²ÉÈ¡Èý²ã¼Ü¹¹Éè¼Æ£¬ ʹÓÃJava¿ª·¢¡£Ö÷ÒªÎÊÌâÔÚÓڸ߲¢·¢É걨¹ý³ÌÖУ¬
Ƶ·±µÄÊý¾Ý¿âдÈëºÍ´óÁ¿²éѯµ¼ÖÂÓ²¼þƽ̨¸ß¸ºÔØ£¬×Óϵͳ²»Îȶ¨£¬ ÎÞ·¨Õý³£·ÃÎÊ¡£
×ÓϵͳµÄ¸ÄÔìÊÇÕë¶ÔÊý¾Ý¿âÆ¿¾±Ìá³ö¸ÄÁ¼·½°¸
²ÉÈ¡Êý¾Ý¿â¡°¶Á/д·ÖÀë¡°µÄ·½Ê½£¬½«Êý¾Ý¡°Ð´È롱¹ØÏµÐÍÊý¾Ý¿â£»½«¡°¶Á¡±µÄ²Ù×÷ÓÉGemfire¼¯ÈºÀ´Ìṩ£¬ÒòΪ²éѯµÄ·ÃÎÊÁ¿ÊýÊ®±¶ÓÚÊý¾ÝµÄдÈëÁ¿¡£
¿Í»§¶Ë×ÊÁÏдÈëʱ£¬Í¬Ê±½«Êý¾ÝдÈëGemfire½ÚµãºÍ¹ØÏµÐÍÊý¾Ý¿â
½«¡°Óû¸ÄÔì¡°µÄ×ÓϵͳҵÎñÂß¼´úÂë¸ÄдºóÒÆµ½Gemfire½ÚµãÖ´ÐÐ
Gemfire¼¯ÈºÌṩ¸Õ¼Èë¡°ÈȵãÊý¾Ý¡°µÄ¿ìËÙ²éѯ
²»Í¬×ÓϵͳÊý¾Ý¿âÖ®¼äµÄÊý¾ÝÅúÁ¿Í¬²½£¬½«ÆäËü×Óϵͳ¡°ÍêÕû¡±µÄÈȵãÊý¾ÝÉÏÔØµ½Gemfire¼¯ÈºÌṩ¿ìËÙ²éѯ
Ïà¹ØµÄ¸ÄÔì²½ÖèºÍʵʩÁ÷³ÌÇë²Î¿¼ÉÏÊöµÄ12306Õ½ڣ¬¸ÄÔìºóµÄ¼Ü¹¹ÈçÏÂͼËùʾ¡£

Î塢ij½ðÈÚµ¥Î»POCÏîÄ¿ - ½¨Á¢¿ÉÀ©Õ¹µÄ ¡°·Ö²¼Ê½Äڴ滺´æÊý¾Ý²ã¡±
½ðÈÚµ¥Î»ÏµÍ³ÊÇÓÉÉϰٸö×Óϵͳ¹¹³É£¬ ËùÓеÄ×Óϵͳ´ÓÉè¼Æµ½¿ª·¢¶¼Òª×ñѱê׼ͳһ¿ª·¢Á÷³Ì£¬×Óϵͳ²ÉÈ¡Èý²ã¼Ü¹¹Éè¼Æ£¬Ó¦ÓÃÂß¼²ãÓëÊý¾Ý·ÃÎʲãÉè¼Æ²ã´Î·ÖÃ÷¡£ÓÉÓÚÒµÎñ²éѯÁ¿´ó£¬Ç£É浽ʮ¼¸ÕŹØÁª±íµÄ²éѯ£¬ÏµÍ³·´Ó¦Ê±¼ä³¤¡£Êý¾Ý¿â¶ÁдƵ·±£¬CPUʱ³£Âú¸ºÔØ£¬µ¼ÖÂϵͳÐÔÄÜÆ¿¾±¡£
POC×Óϵͳ¸ÄÔìÄ¿±ê
¸ÄÔ췽ʽÊÇÔÚ²»¸Ä±ä×ÓϵͳҵÎñÂß¼Çé¿öÏ£¬¶ÔÊý¾Ý·ÃÎÊ²ã½øÐÐÐÞ¸ÄDAO½Ó¿Ú£¬ÒýÈë¡°·Ö²¼Ê½»º´æÊý¾Ý²ã¡±¼Ü¹¹¡£
£¨1£©É趨ÐÔÄÜÖ¸±ê£º
ÐÔÄÜÖ¸±êÐèÒª´ïµ½ÔÓÐ×ÓϵͳÐÔÄÜ20±¶ÒÔÉÏ
£¨2£©Õë¶ÔÁ½¸ö×Óϵͳ½øÐÐDAO½Ó¿Ú¸ÄÔì
£¨3£©ÑéÖ¤¸ÄÔìºóµÄ×Óϵͳ²éѯÐÔÄÜ¿ÉËæ×ÅGemfireÐé»úµÄÔö¼Ó¶øÏßÐÔÔö¼Ó
£¨4£©ÏµÍ³¸ß¿ÉÓÃÐÔ£¨HA£©
³ýÁËGemfire¼¯ÈºµÄHAÒÔÍ⣬»¹Òª¿¼ÂÇϵͳÎȶ¨ÐԺͰ²È«ÐÔ£¬ ²ÉÓá°Ê§Ð§×ªÒÆ fail over¡±Éè¼Æ£¬ÍòÒ»Gemfire¼¯ÈºÒ쳣ʱ£¬¸ÄÓÉÊý¾Ý¿âÌṩ²éѯ·þÎñ
Êý¾Ý·ÃÎʲ㣨DAO£©¸ÄÔì²½Ö裺
¸ù¾Ý¿Í»§³¡¾°µÄÒªÇó£¬×ÓϵͳµÄ¸ÄÔìÊÇÕë¶ÔÊý¾Ý¿âÌá³ö¸ÄÁ¼·½°¸£¬¶ÔÊý¾Ý·ÃÎÊ²ã½øÐÐÐÞ¸ÄDAO½Ó¿Ú£¬Ç¶Èë¡°»º´æÊý¾Ý´úÀí²ã¡±
£¨Delegator£©¼Ü¹¹¡£
»º´æÊý¾Ý´úÀí²ãÓÐÈçϹ¦ÄÜÉè¼Æ£º
»º´æÊý¾Ý´úÀí²ãÏòÉÏ·â×°Êý¾Ý·ÃÎʽӿڣ¬ÏòÏÂͬʱ֧³ÖDBºÍGemfire»º´æÊý¾Ý²ã
ÓëÒµÎñÂß¼Ïà¹ØµÄAPI¿ÉÒÔËæ×ÅÒµÎñÐèÇ󣬰´Ð赯ÐÔÔö¼ÓAPI½Ó¿ÚµÄÖ§³Ö
¸ù¾ÝGemfireµÄÌØÐÔ£¬¶ÔSQLÓï¾ä½øÐÐÐ޸ģ¬Éè¼Æ³É²¢Ðвéѯ¹¦ÄÜ
¿¼ÂÇÊý¾ÝÒ»ÖÂÐÔµÄÒªÇ󣬿ͻ§¶ËÊý¾ÝÖ±½ÓдÈë¹ØÏµÐÍÊý¾Ý¿â£¬ÔÙ½«Êý¾Ýͬ²½µ½Gemfire¼¯ÈºÌṩ¿ìËÙ²éѯ¡£
ÍòÒ»Gemfire¼¯ÈºÓÐÒì³££¬¿Í»§¶Ë¿ÉÖ±½Ó·ÃÎÊÊý¾Ý¿â£¬ÊµÏÖ»º´æÊý¾Ý²ãºÍDBÖ®¼äµÄÎÞ·ìÇл»
ÁíÍ⣬ÆäËûÊý¾Ý¿â»òHadoop¼¯Èº´æ´¢È«Á¿ÒµÎñÊý¾Ý£¬¿É½«¡°ÈȵãÊý¾Ý¡±ÉÏÔØµ½»º´æÊý¾Ý²ã
ͨ¹ýGemfireÒì²½¶ÓÁÐÒ²¿ÉÒÔ½«GemfireµÄ¡°ÈȵãÊý¾Ý¡±³Ö¾Ã»¯µ½DB»òHadoop¼¯Èº
µ±²éѯÔÚGemfire»º´æÊý¾Ý²ãδÃüÖÐʱ£¬Í¨¹ýCache loader´ÓDB»òHadoop¼¯Èº¼ÓÔØÊý¾Ýµ½»º´æÊý¾Ý²ã£¬
Ìṩ²éѯ·þÎñ¡£
Ïà¹ØµÄ¸ÄÔì²½ÖèºÍʵʩÁ÷³ÌÇë²Î¿¼ÉÏÊöµÄ12306Õ½ڣ¬¸ÄÔìºóµÄ¼Ü¹¹Ê¾ÒâͼÈçÏ£º

Áù¡¢½áÂÛºÍÆôʾ
ÓÉÉÏÃæ¼¸¸ö°¸Àý˵Ã÷£¬²»Í¬µÄÓû§Óв»Í¬µÄËßÇ󣬲»Í¬µÄϵͳ¿ª·¢»·¾³ºÍ²»Í¬µÄÏÞÖÆÌõ¼þËù²ÉÓõĸÄÔ췽ʽҲ²»Ò»Ñù¡£×ܽáÈçÏ£º
£¨1£©12306ÏîÄ¿£º Á÷Á¿¸ß£¬²¢·¢ÐÔÇ¿£¬·þÎñÆ÷¸ºÔظߣ¬·´Ó¦Ê±¼äÒªÇóÑϸñ£»ÎªÁ˱ÜÃâijһ¸ö»·½ÚµÄÆ¿¾±£¬ÐèÒªÀí˳Õû¸öÁ÷³Ì,
½«Ò»ÏµÁеÄ×Óϵͳ×ö¡°ÔÆ»¯¡±µÄ¸ÄÔì¡£¸ù¾Ýʵ¼ÊÐèÇ󣬽«ÔÆ»¯ºóµÄ×Óϵͳ°´Ð貿ÊðÔÚ¹«ÓÐÔÆÌṩ·þÎñ¡£ ¸ÄÔìµÄÊÖ¶ÎÊÇÓá°·Ö²¼Ê½Êý¾ÝÍø¸ñ¡±µÄ¼¼Êõ£¬½áºÏÒµÎñÂß¼ÌØÐÔºÍÊý¾Ý½á¹¹£¬½«ÒµÎñÂß¼ºÍ¹ØÁªÐÔÇ¿µÄÊý¾Ý·ÅÔÚͬ¸öGemfireÊý¾Ý½Úµã£¬ÀûÓÃMap
ReduceµÄ¼¼ÊõÌṩǿ´óµÄCPU¼ÆËãÄÜÁ¦À´½â¾öÎÊÌâ¡£
£¨2£© Éç±£ÏîÄ¿£º Éç±£ÊÔµãÏîÄ¿µÄ¸ÄÔìÖØµãÊÇÕë¶Ô»á·¢ÉúÆ¿¾±µÄ×Óϵͳ½øÐиÄÔ죬½«×ÓϵͳҵÎñÂß¼ºÍ¹ØÁªÐÔÇ¿µÄÊý¾Ý·ÅÔÚͬ¸öGemfireÊý¾Ý½Úµã£¬ÀûÓÃGemfire·Ö²¼Ê½²¢Ðвéѯ¼¼ÊõÀ´½â¾ö¸ß²¢·¢²éѯµÄÒªÇ󣬲¢ÎªÕþ¸®ÐÐÕþ²¿ÃŹÜÀí͸Ã÷»¯£¬ÄÚÈݸü·á¸»µÄ¡°Open
Data¡±·þÎñƽ̨ÆÌ·¡£
¶ÔÓÚÈ˿ڴóÊ¡£¬ÀýÈç¹ã¶«£¬ºÓÄÏ£¬½ËÕºÍËÄ´¨È˿ڽӽüÉÏÒÚµÄÊ¡·Ý£¬Ëæ×ÅÉç±£ÌåÖÆµÄ¸Ä¸ï£¬¸üÒª¿¼ÂÇ¡°´óÊý¾Ý¡±µÄ´æ´¢ºÍ²éѯ£¬ÒòΪÕâЩÉç±£×ÊÁÏ´ïPÁ¿¼¶£¬ÐèÒª´æ´¢ÊýÊ®ÄêÒÔÉÏ¡£
´óÊý¾ÝºÍ¿ìÊý¾ÝµÄÉè¼Æ¿ÉÒÔ½è¼ø 12306 ¶©µ¥·Ö¼¶²éѯµÄ»úÖÆ£¬½«¡°ÈȵãÊý¾Ý¡±·ÅÔÚGemfire»º´æ¼¯ÈºÌṩ¿ìËÙ²éѯ£¬½«ÀúÊ·Êý¾Ý´æ·ÅÔÚHadoop¼¯Èº¡£µ±²éѯÔÚGemfire»º´æÊý¾Ý²ãδÃüÖÐʱ£¬Í¨¹ýCache
loader´ÓDB»òHadoop¼¯Èº¼ÓÔØÊý¾Ýµ½»º´æÊý¾Ý²ã£¬Ìṩ²éѯ·þÎñ¡£
£¨3£© ½ðÈÚµ¥Î»POCÏîÄ¿£º ´ËPOCµÄ¸ÄÔìÓëÉÏÊöÁ½¸öÏîÄ¿²»Ò»Ñù£¬ÔÚ12306ºÍÉç±£ÏîÄ¿¸ÄÔì¶¼ÊÇÐèÒª½«ÒµÎñÂß¼¸ÄдÔÚGemfire¼¯Èº£»
´Ë½ðÈÚµ¥Î»POCµÄ²âÊÔÄ¿µÄÊÇÔÚ²»¸ÄдҵÎñÂß¼µÄÇé¿öÏ£¬¶ÔÔÀ´ÏµÍ³µÄÊý¾Ý·ÃÎʲ㣨DAO£©½øÐиÄÔ죬 Ìṩ¿ÉÀ©Õ¹µÄ·Ö²¼Ê½»º´æÊý¾Ý²ãÌṩ¿ìËÙ·þÎñ£¬²¢Ìá¹©Ê§Ð§×ªÒÆµÄÉè¼Æ¡£
|