´Ó¸÷¸ö½Ç¶È×ܽáÁ˵çÉÌÆ½Ì¨Öеļܹ¹Êµ¼ù£¬ÓÉÓÚʱ¼ä²Ö´Ù£¬¶¨Á˸ö³õ¸å£¬´ý²¹³äÍêÉÆ£¬»¶Ó´ó¼ÒÒ»Æð½»Á÷¡£
Ò»¡¢ Éè¼ÆÀíÄî
1. ¿Õ¼ä»»Ê±¼ä
1) ¶à¼¶»º´æ£¬¾²Ì¬»¯
¿Í»§¶ËÒ³Ãæ»º´æ£¨http headerÖаüº¬Expires/Cache
of Control£¬last modified(304£¬server²»·µ»Øbody£¬¿Í»§¶Ë¿ÉÒÔ¼ÌÐøÓÃcache£¬¼õÉÙÁ÷Á¿)£¬ETag£©
·´Ïò´úÀí»º´æ
Ó¦Óö˵Ļº´æ(memcache)
ÄÚ´æÊý¾Ý¿â
Buffer¡¢cache»úÖÆ£¨Êý¾Ý¿â£¬Öмä¼þµÈ£©
2) Ë÷Òý
¹þÏ£¡¢BÊ÷¡¢µ¹ÅÅ¡¢bitmap
¹þÏ£Ë÷ÒýÊʺÏ×ÛºÏÊý×éµÄѰַºÍÁ´±íµÄ²åÈëÌØÐÔ£¬¿ÉÒÔʵÏÖÊý¾ÝµÄ¿ìËÙ´æÈ¡¡£
BÊ÷Ë÷ÒýÊʺÏÓÚ²éѯΪÖ÷µ¼µÄ³¡¾°£¬±ÜÃâ¶à´ÎµÄIO£¬Ìá¸ß²éѯµÄЧÂÊ¡£
µ¹ÅÅË÷ÒýʵÏÖµ¥´Êµ½ÎĵµÓ³Éä¹ØÏµµÄ×î¼ÑʵÏÖ·½Ê½ºÍ×îÓÐЧµÄË÷Òý½á¹¹£¬¹ã·ºÓÃÔÚËÑË÷ÁìÓò¡£
BitmapÊÇÒ»Öַdz£¼ò½à¿ìËÙµÄÊý¾Ý½á¹¹£¬ËûÄÜͬʱʹ´æ´¢¿Õ¼äºÍËÙ¶È×îÓÅ»¯£¨¶ø²»±Ø¿Õ¼ä»»Ê±¼ä£©£¬ÊʺÏÓÚº£Á¿Êý¾ÝµÄµÄ¼ÆË㳡¾°¡£
2. ²¢ÐÐÓë·Ö²¼Ê½¼ÆËã
1) ÈÎÎñÇз֡¢·Ö¶øÖÎÖ®(MR)
ÔÚ´ó¹æÄ£µÄÊý¾ÝÖУ¬Êý¾Ý´æÔÚÒ»¶¨µÄ¾Ö²¿ÐÔµÄÌØÕ÷£¬ÀûÓþֲ¿ÐÔµÄÔÀí½«º£Á¿Êý¾Ý¼ÆËãµÄÎÊÌâ·Ö¶øÖÎÖ®¡£
MRÄ£ÐÍÊÇÎÞ¹²ÏíµÄ¼Ü¹¹£¬Êý¾Ý¼¯·Ö²¼ÖÁ¸÷¸ö½Úµã¡£´¦Àíʱ£¬Ã¿¸ö½Úµã¾Í½ü¶ÁÈ¡±¾µØ´æ´¢µÄÊý¾Ý´¦Àí(map)£¬½«´¦ÀíºóµÄÊý¾Ý½øÐкϲ¢(combine)¡¢ÅÅÐò(shuffle
and sort)ºóÔÙ·Ö·¢(ÖÁreduce½Úµã)£¬±ÜÃâÁË´óÁ¿Êý¾ÝµÄ´«Ê䣬Ìá¸ßÁË´¦ÀíЧÂÊ¡£
2) ¶à½ø³Ì¡¢¶àÏ̲߳¢ÐÐÖ´ÐÐ(MPP)
²¢ÐмÆË㣨Parallel Computing£©ÊÇָͬʱʹÓöàÖÖ¼ÆËã×ÊÔ´½â¾ö¼ÆËãÎÊÌâµÄ¹ý³Ì£¬ÊÇÌá¸ß¼ÆËã»úϵͳ¼ÆËãËٶȺʹ¦ÀíÄÜÁ¦µÄÒ»ÖÖÓÐЧÊֶΡ£ËüµÄ»ù±¾Ë¼ÏëÊÇÓöà¸ö´¦ÀíÆ÷/½ø³Ì/Ïß³ÌÀ´ÐͬÇó½âͬһÎÊÌ⣬¼´½«±»Çó½âµÄÎÊÌâ·Ö½â³ÉÈô¸É¸ö²¿·Ö£¬¸÷²¿·Ö¾ùÓÉÒ»¸ö¶ÀÁ¢µÄ´¦Àí»úÀ´²¢ÐмÆËã¡£
ºÍMRµÄÇø±ðÔÚÓÚ£¬ËüÊÇ»ùÓÚÎÊÌâ·Ö½âµÄ£¬¶ø²»ÊÇ»ùÓÚÊý¾Ý·Ö½â¡£
3. ¶àά¶ÈµÄ¿ÉÓÃ
1) ¸ºÔؾùºâ¡¢ÈÝÔÖ¡¢±¸·Ý
Ëæ×ÅÆ½Ì¨²¢·¢Á¿µÄÔö´ó£¬ÐèÒªÀ©ÈÝ½Úµã½øÐм¯Èº£¬ÀûÓøºÔؾùºâÉ豸½øÐÐÇëÇóµÄ·Ö·¢£»¸ºÔؾùºâÉ豸ͨ³£ÔÚÌṩ¸ºÔؾùºâµÄͬʱ£¬Ò²ÌṩʧЧ¼ì²â¹¦ÄÜ£»Í¬Ê±ÎªÁËÌá¸ß¿ÉÓÃÐÔ£¬ÐèÒªÓÐÈÝÔÖ±¸·Ý£¬ÒÔ·ÀÖ¹½Úµãå´»úʧЧ´øÀ´µÄ²»¿ÉÓÃÎÊÌ⣻±¸·ÝÓÐÔÚÏߵĺÍÀëÏß±¸·Ý£¬¿ÉÒÔ¸ù¾ÝʧЧÐÔÒªÇóµÄ²»Í¬£¬½øÐÐÑ¡Ôñ²»Í¬µÄ±¸·Ý²ßÂÔ¡£
2) ¶Áд·ÖÀë
¶Áд·ÖÀëÊǶÔÊý¾Ý¿âÀ´½²µÄ£¬Ëæ×Åϵͳ²¢·¢Á¿µÄÔö´ó£¬Ìá¸ßÊý¾Ý·ÃÎÊ¿ÉÓÃÐÔµÄÒ»¸öÖØÒªÊֶξÍÊÇдÊý¾ÝºÍ¶ÁÊý¾Ý½øÐзÖÀ룻µ±È»ÔÚ¶Áд·ÖÀëµÄͬʱ£¬ÐèÒª¹Ø×¢Êý¾ÝµÄÒ»ÖÂÐÔÎÊÌ⣻¶ÔÓÚÒ»ÖÂÐÔµÄÎÊÌ⣬ÔÚ·Ö²¼Ê½µÄϵͳCAP¶¨Á¿ÖУ¬¸ü¶àµÄ¹Ø×¢ÓÚ¿ÉÓÃÐÔ¡£
3) ÒÀÀµ¹ØÏµ
ƽ̨Öи÷¸öÄ£¿éÖ®¼äµÄ¹ØÏµ¾¡Á¿ÊǵÍñîºÏµÄ£¬¿ÉÒÔͨ¹ýÏà¹ØµÄÏûÏ¢×é¼þ½øÐн»»¥£¬ÄÜÒì²½ÔòÒì²½£¬·ÖÇå³þÊý¾ÝÁ÷תµÄÖ÷Á÷³ÌºÍ¸±Á÷³Ì£¬Ö÷¸±ÊÇÒì²½µÄ£¬±ÈÈç¼Ç¼ÈÕÖ¾¿ÉÒÔÊÇÒì²½²Ù×÷µÄ£¬Ôö¼ÓÕû¸öϵͳµÄ¿ÉÓÃÐÔ¡£
µ±È»ÔÚÒì²½´¦ÀíÖУ¬ÎªÁËÈ·±£Êý¾ÝµÃµ½½ÓÊÕ»òÕß´¦Àí£¬ÍùÍùÐèҪȷÈÏ»úÖÆ(confirm¡¢ack)¡£
µ«ÊÇÓÐЩ³¡¾°ÖУ¬ËäÈ»ÇëÇóÒѾµÃµ½´¦Àí£¬µ«ÊÇÒòÆäËûÔÒò(±ÈÈçÍøÂç²»Îȶ¨)£¬È·ÈÏÏûϢûÓзµ»Ø£¬ÄÇôÕâÖÖÇé¿öÏÂÐèÒª½øÐÐÇëÇóµÄÖØ·¢£¬¶ÔÇëÇóµÄ´¦ÀíÉè¼ÆÒòÖØ·¢ÒòËØÐèÒª¿¼ÂÇÃݵÈÐÔ¡£
4) ¼à¿Ø
¼à¿ØÒ²ÊÇÌá¸ßÕû¸öƽ̨¿ÉÓÃÐÔµÄÒ»¸öÖØÒªÊֶΣ¬¶àƽ̨½øÐжà¸öά¶ÈµÄ¼à¿Ø£»Ä£¿éÔÚÔËÐÐʱºòÊÇ͸Ã÷µÄ£¬ÒÔ´ïµ½ÔËÐÐÆÚ°×ºÐ»¯¡£
4. ÉìËõ
1) ²ð·Ö
²ð·Ö°üÀ¨¶ÔÒµÎñµÄ²ð·ÖºÍ¶ÔÊý¾Ý¿âµÄ²ð·Ö¡£
ϵͳµÄ×ÊÔ´×ÜÊÇÓÐÏ޵ģ¬Ò»¶Î±È½Ï³¤µÄÒµÎñÖ´ÐÐÈç¹ûÊÇÒ»¸Í×ÓÖ´Ðеķ½Ê½£¬ÔÚ´óÁ¿²¢·¢µÄ²Ù×÷Ï£¬ÕâÖÖ×èÈûµÄ·½Ê½£¬ÎÞ·¨ÓÐЧµÄ¼°Ê±ÊÍ·Å×ÊÔ´¸øÆäËû½ø³ÌÖ´ÐУ¬ÕâÑùϵͳµÄÍÌÍÂÁ¿²»¸ß¡£
ÐèÒª°ÑÒµÎñ½øÐÐÂß¼µÄ·Ö¶Î£¬²ÉÓÃÒì²½·Ç×èÈûµÄ·½Ê½£¬Ìá¸ßϵͳµÄÍÌÍÂÁ¿¡£
Ëæ×ÅÊý¾ÝÁ¿ºÍ²¢·¢Á¿µÄÔö¼Ó£¬¶Áд·ÖÀë²»ÄÜÂú×ãϵͳ²¢·¢ÐÔÄܵÄÒªÇó£¬ÐèÒª¶ÔÊý¾Ý½øÐÐÇз֣¬°üÀ¨¶ÔÊý¾Ý½øÐзֿâºÍ·Ö±í¡£ÕâÖÖ·Ö¿â·Ö±íµÄ·½Ê½£¬ÐèÒªÔö¼Ó¶ÔÊý¾ÝµÄ·ÓÉÂß¼Ö§³Ö¡£
2) ÎÞ״̬
¶ÔÓÚϵͳµÄÉìËõÐÔ¶øÑÔ£¬Ä£¿é×îºÃÊÇÎÞ״̬µÄ£¬Í¨¹ýÔö¼Ó½Úµã¾Í¿ÉÒÔÌá¸ßÕû¸öµÄÍÌÍÂÁ¿¡£
5. ÓÅ»¯×ÊÔ´ÀûÓÃ
1) ϵͳÈÝÁ¿ÓÐÏÞ
ϵͳµÄÈÝÁ¿ÊÇÓÐÏ޵쬳ÐÊܵIJ¢·¢Á¿Ò²ÊÇÓÐÏ޵ģ¬Ôڼܹ¹Éè¼ÆÊ±£¬Ò»¶¨ÐèÒª¿¼ÂÇÁ÷Á¿µÄ¿ØÖÆ£¬·ÀÖ¹ÒòÒâÍâ¹¥»÷»òÕß˲ʱ²¢·¢Á¿µÄ³å»÷µ¼ÖÂϵͳ±ÀÀ£¡£ÔÚÉè¼ÆÊ±Ôö¼ÓÁ÷¿ØµÄ´ëÊ©£¬¿É¿¼ÂǶÔÇëÇó½øÐÐÅŶӣ¬³¬³öÔ¤ÆÚµÄ·¶Î§£¬¿ÉÒÔ½øÐи澯»òÕß¶ªÆú¡£
2) Ô×Ó²Ù×÷Óë²¢·¢¿ØÖÆ
¶ÔÓÚ¹²Ïí×ÊÔ´µÄ·ÃÎÊ£¬ÎªÁË·ÀÖ¹³åÍ»£¬ÐèÒª½øÐв¢·¢µÄ¿ØÖÆ£¬Í¬Ê±ÓÐЩ½»Ò×ÐèÒªÓÐÊÂÎñÐÔÀ´±£Ö¤½»Ò×µÄÒ»ÖÂÐÔ£¬ËùÒÔÔÚ½»Ò×ϵͳµÄÉè¼ÆÊ±£¬Ð迼ÂÇÔ×Ó²Ù×÷ºÍ²¢·¢¿ØÖÆ¡£
±£Ö¤²¢·¢¿ØÖÆÒ»Ð©³£ÓøßÐÔÄÜÊÖ¶ÎÓУ¬ÀÖ¹ÛËø¡¢Latch¡¢mutex¡¢Ð´Ê±¸´ÖÆ¡¢CASµÈ£»¶à°æ±¾µÄ²¢·¢¿ØÖÆMVCCͨ³£ÊDZ£Ö¤Ò»ÖÂÐÔµÄÖØÒªÊֶΣ¬Õâ¸öÔÚÊý¾Ý¿âµÄÉè¼ÆÖо³£»áÓõ½¡£
3) »ùÓÚÂß¼µÄ²»Í¬£¬²ÉÈ¡²»Ò»ÑùµÄ²ßÂÔ
ƽ̨ÖÐÒµÎñÂß¼´æÔÚ²»Í¬µÄÀàÐÍ£¬ÓмÆË㸴ÔÓÐ͵ģ¬ÓÐÏûºÄIOÐ͵ģ¬Í¬Ê±¾ÍͬһÖÖÀàÐͶøÑÔ£¬²»Í¬µÄÒµÎñÂß¼ÏûºÄµÄ×ÊÔ´ÊýÁ¿Ò²ÊDz»Ò»ÑùµÄ£¬Õâ¾ÍÐèÒªÕë¶Ô²»Í¬µÄÂß¼²ÉÈ¡²»Í¬µÄ²ßÂÔ¡£
Õë¶ÔIOÐ͵ģ¬¿ÉÒÔ²ÉÈ¡»ùÓÚʼþÇý¶¯µÄÒì²½·Ç×èÈûµÄ·½Ê½£¬µ¥Ï̷߳½Ê½¿ÉÒÔ¼õÉÙÏ̵߳ÄÇл»ÒýÆðµÄ¿ªÏú£¬»òÕßÔÚ¶àÏ̵߳ÄÇé¿öϲÉÈ¡×ÔÐýspinµÄ·½Ê½£¬¼õÉÙ¶ÔÏ̵߳ÄÇл»(±ÈÈçoracle
latchÉè¼Æ)£»¶ÔÓÚ¼ÆËãÐ͵쬳ä·ÖÀûÓöàÏ߳̽øÐвÙ×÷¡£
ͬһÀàÐ͵ĵ÷Ó÷½Ê½£¬²»Í¬µÄÒµÎñ½øÐкÏÊʵÄ×ÊÔ´·ÖÅ䣬ÉèÖò»Í¬µÄ¼ÆËã½ÚµãÊýÁ¿»òÕßÏß³ÌÊýÁ¿£¬¶ÔÒµÎñ½øÐзÖÁ÷£¬ÓÅÏÈÖ´ÐÐÓÅÏȼ¶±ð¸ßµÄÒµÎñ¡£
4) ÈÝ´í¸ôÀë
ϵͳµÄÓÐЩҵÎñÄ£¿éÔÚ³öÏÖ´íÎóʱ£¬ÎªÁ˼õÉÙ²¢·¢Ï¶ÔÕý³£ÇëÇóµÄ´¦ÀíµÄÓ°Ï죬ÓÐʱºòÐèÒª¿¼ÂǶÔÕâЩÒ쳣״̬µÄÇëÇó½øÐе¥¶ÀÇþµÀµÄ´¦Àí£¬ÉõÖÁÔÝʱ×Ô¶¯½ûÖ¹ÕâЩÒì³£µÄÒµÎñÄ£¿é¡£
ÓÐЩÇëÇóµÄʧ°Ü¿ÉÄÜÊÇżȻµÄÔÝʱµÄʧ°Ü(±ÈÈçÍøÂç²»Îȶ¨)£¬ÐèÒª½øÐÐÇëÇóÖØÊԵĿ¼ÂÇ¡£
5) ×ÊÔ´ÊÍ·Å
ϵͳµÄ×ÊÔ´ÊÇÓÐÏ޵ģ¬ÔÚʹÓÃ×ÊԴʱ£¬Ò»¶¨ÒªÔÚ×îºóÊÍ·Å×ÊÔ´£¬ÎÞÂÛÊÇÇëÇó×ßµÄÊÇÕý³£Â·¾¶»¹ÊÇÒì³£µÄ·¾¶£¬ÒÔ±ãÓÚ×ÊÔ´µÄ¼°Ê±»ØÊÕ£¬¹©ÆäËûÇëÇóʹÓá£
ÔÚÉè¼ÆÍ¨Ðŵļܹ¹Ê±£¬ÍùÍùÐèÒª¿¼Âdz¬Ê±µÄ¿ØÖÆ¡£
¶þ¡¢ ¾²Ì¬¼Ü¹¹À¶Í¼

Õû¸ö¼Ü¹¹ÊÇ·Ö²ãµÄ·Ö²¼Ê½µÄ¼Ü¹¹£¬×ÝÏò°üÀ¨CDN£¬¸ºÔؾùºâ/·´Ïò´úÀí£¬webÓ¦Óã¬ÒµÎñ²ã£¬»ù´¡·þÎñ²ã£¬Êý¾Ý´æ´¢²ã¡£Ë®Æ½·½Ïò°üÀ¨¶ÔÕû¸öƽ̨µÄÅäÖùÜÀí²¿ÊðºÍ¼à¿Ø¡£
Èý¡¢ ÆÊÎö¼Ü¹¹
1. CDN
CDNϵͳÄܹ»ÊµÊ±µØ¸ù¾ÝÍøÂçÁ÷Á¿ºÍ¸÷½ÚµãµÄÁ¬½Ó¡¢¸ºÔØ×´¿öÒÔ¼°µ½Óû§µÄ¾àÀëºÍÏìӦʱ¼äµÈ×ÛºÏÐÅÏ¢½«Óû§µÄÇëÇóÖØÐµ¼ÏòÀëÓû§×î½üµÄ·þÎñ½ÚµãÉÏ¡£ÆäÄ¿µÄÊÇʹÓû§¿É¾Í½üÈ¡µÃËùÐèÄÚÈÝ£¬½â¾ö
InternetÍøÂçÓµ¼·µÄ×´¿ö£¬Ìá¸ßÓû§·ÃÎÊÍøÕ¾µÄÏìÓ¦ËÙ¶È¡£
¶ÔÓÚ´ó¹æÄ£µç×ÓÉÌÎñƽ̨һ°ãÐèÒª½¨CDN×öÍøÂç¼ÓËÙ£¬´óÐÍÆ½Ì¨ÈçÌÔ±¦¡¢¾©¶«¶¼²ÉÓÃ×Ô½¨CDN£¬ÖÐСÐÍµÄÆóÒµ¿ÉÒÔ²ÉÓõÚÈý·½CDN³§É̺Ï×÷£¬ÈçÀ¶Ñ´¡¢ÍøËÞ¡¢¿ìÍøµÈ¡£
µ±È»ÔÚÑ¡ÔñCDN³§ÉÌʱ£¬ÐèÒª¿¼ÂǾӪʱ¼ä³¤¶Ì£¬ÊÇ·ñÓпÉÀ©³äµÄ´ø¿í×ÊÔ´¡¢Áé»îµÄÁ÷Á¿ºÍ´ø¿íÑ¡Ôñ¡¢Îȶ¨µÄ½Úµã¡¢ÐԼ۱ȡ£
2. ¸ºÔؾùºâ¡¢·´Ïò´úÀí
Ò»¸ö´óÐÍµÄÆ½Ì¨°üÀ¨ºÜ¶à¸öÒµÎñÓò£¬²»Í¬µÄÒµÎñÓòÓв»Í¬µÄ¼¯Èº£¬¿ÉÒÔÓÃDNS×öÓòÃû½âÎöµÄ·Ö·¢»òÂÖѯ£¬DNS·½Ê½ÊµÏÖ¼òµ¥£¬µ«ÊÇÒò´æÔÚcache¶øÈ±·¦Áé»îÐÔ£»Ò»°ã»ùÓÚÉÌÓõÄÓ²¼þF5¡¢NetScaler»òÕß¿ªÔ´µÄÈí¸ºÔØlvsÔÚ4²ã×ö·Ö·¢£¬µ±È»»á²ÉÓÃ×öÈßÓà(±ÈÈçlvs+keepalived)µÄ¿¼ÂÇ£¬²ÉÈ¡Ö÷±¸·½Ê½¡£
4²ã·Ö·¢µ½ÒµÎñ¼¯ÈºÉϺ󣬻Ᾱýweb·þÎñÆ÷Èçnginx»òÕßHAProxyÔÚ7²ã×ö¸ºÔؾùºâ»òÕß·´Ïò´úÀí·Ö·¢µ½¼¯ÈºÖеÄÓ¦Óýڵ㡣
Ñ¡ÔñÄÄÖÖ¸ºÔØ£¬ÐèÒª×ۺϿ¼ÂǸ÷ÖÖÒòËØ£¨ÊÇ·ñÂú×ã¸ß²¢·¢¸ßÐÔÄÜ£¬Session±£³ÖÈçºÎ½â¾ö£¬¸ºÔؾùºâµÄËã·¨ÈçºÎ£¬Ö§³ÖѹËõ£¬»º´æµÄÄÚ´æÏûºÄ£©£»ÏÂÃæ»ùÓÚ¼¸ÖÖ³£ÓõĸºÔؾùºâÈí¼þ×ö¸ö½éÉÜ¡£
LVS£¬¹¤×÷ÔÚ4²ã£¬LinuxʵÏֵĸßÐÔÄܸ߲¢·¢¡¢¿ÉÉìËõÐÔ¡¢¿É¿¿µÄµÄ¸ºÔؾùºâÆ÷£¬Ö§³Ö¶àÖÖת·¢·½Ê½(NAT¡¢DR¡¢IP
Tunneling)£¬ÆäÖÐDRģʽ֧³Öͨ¹ý¹ãÓòÍø½øÐиºÔؾùºâ¡£Ö§³ÖË«»úÈȱ¸(Keepalived»òÕßHeartbeat)¡£¶ÔÍøÂç»·¾³µÄÒÀÀµÐԱȽϸߡ£
Nginx¹¤×÷ÔÚ7²ã£¬Ê¼þÇý¶¯µÄ¡¢Òì²½·Ç×èÈûµÄ¼Ü¹¹¡¢Ö§³Ö¶à½ø³ÌµÄ¸ß²¢·¢µÄ¸ºÔؾùºâÆ÷/·´Ïò´úÀíÈí¼þ¡£¿ÉÒÔÕë¶ÔÓòÃû¡¢Ä¿Â¼½á¹¹¡¢ÕýÔò¹æÔòÕë¶Ôhttp×öһЩ·ÖÁ÷¡£Í¨¹ý¶Ë¿Ú¼ì²âµ½·þÎñÆ÷ÄÚ²¿µÄ¹ÊÕÏ£¬±ÈÈç¸ù¾Ý·þÎñÆ÷´¦ÀíÍøÒ³·µ»ØµÄ״̬Âë¡¢³¬Ê±µÈµÈ£¬²¢ÇÒ»á°Ñ·µ»Ø´íÎóµÄÇëÇóÖØÐÂÌá½»µ½ÁíÒ»¸ö½Úµã£¬²»¹ýÆäÖÐȱµã¾ÍÊDz»Ö§³ÖurlÀ´¼ì²â¡£¶ÔÓÚsession
sticky£¬¿ÉÒÔ»ùÓÚip hashµÄËã·¨À´ÊµÏÖ£¬Í¨¹ý»ùÓÚcookieµÄÀ©Õ¹nginx-sticky-moduleÖ§³Ösession
sticky¡£
HAProxyÖ§³Ö4²ãºÍ7²ã×ö¸ºÔؾùºâ£¬Ö§³ÖsessionµÄ»á»°±£³Ö£¬cookieµÄÒýµ¼£»Ö§³Öºó¶Ëurl·½Ê½µÄ¼ì²â£»¸ºÔؾùºâµÄËã·¨±È½Ï·á¸»£¬ÓÐRR¡¢È¨Öصȡ£
¶ÔÓÚͼƬ£¬ÐèÒªÓе¥¶ÀµÄÓòÃû£¬¶ÀÁ¢»òÕß·Ö²¼Ê½µÄͼƬ·þÎñÆ÷»òÕßÈçmogileFS£¬¿ÉÒÔͼƬ·þÎñÆ÷Ö®ÉϼÓvarnish×öͼƬ»º´æ¡£
3. App½ÓÈë
Ó¦ÓòãÔËÐÐÔÚjboss»òÕßtomcatÈÝÆ÷ÖУ¬´ú±í¶ÀÁ¢µÄϵͳ£¬±ÈÈçǰ¶Ë¹ºÎï¡¢Óû§×ÔÖ÷·þÎñ¡¢ºó¶ËϵͳµÈ
ÐÒé½Ó¿Ú£¬HTTP¡¢JSON
¿ÉÒÔ²ÉÓÃservlet3.0,Òì²½»¯servlet,Ìá¸ßÕû¸öϵͳµÄÍÌÍÂÁ¿
httpÇëÇó¾¹ýNginx£¬Í¨¹ý¸ºÔؾùºâËã·¨·Öµ½µ½AppµÄijһ½Úµã£¬ÕâÒ»²ã²ãÀ©ÈÝÆðÀ´±È½Ï¼òµ¥¡£
³ýÁËÀûÓÃcookie±£´æÉÙÁ¿Óû§²¿·ÖÐÅÏ¢Íâ(cookieÒ»°ã²»Äܳ¬¹ý4KµÄ´óС)£¬¶ÔÓÚApp½ÓÈë²ã£¬±£´æÓÐÓû§Ïà¹ØµÄsessionÊý¾Ý£¬µ«ÊÇÓÐЩ·´Ïò´úÀí»òÕ߸ºÔؾùºâ²»Ö§³Ö¶Ôsession
stickyÖ§³Ö²»ÊǺܺûòÕß¶Ô½ÓÈëµÄ¿ÉÓÃÐÔÒªÇó±È½Ï¸ß(app½ÓÈë½Úµãå´»ú£¬sessionËæÖ®¶ªÊ§)£¬Õâ¾ÍÐèÒª¿¼ÂÇsessionµÄ¼¯ÖÐʽ´æ´¢£¬Ê¹µÃApp½ÓÈë²ãÎÞ״̬»¯£¬Í¬Ê±ÏµÍ³Óû§±ä¶àµÄʱºò£¬¾Í¿ÉÒÔͨ¹ýÔö¼Ó¸ü¶àµÄÓ¦ÓýڵãÀ´´ïµ½Ë®Æ½À©Õ¹µÄÄ¿µÄ¡£
SessionµÄ¼¯ÖÐʽ´æ´¢£¬ÐèÒªÂú×ãÒÔϼ¸µãÒªÇó£º
a¡¢¸ßЧµÄͨѶÐÒé
b¡¢sessionµÄ·Ö²¼Ê½»º´æ£¬Ö§³Ö½ÚµãµÄÉìËõ£¬Êý¾ÝµÄÈßÓ౸·ÝÒÔ¼°Êý¾ÝµÄÇ¨ÒÆ
c¡¢session¹ýÆÚµÄ¹ÜÀí
4. ÒµÎñ·þÎñ
´ú±íijһÁìÓòµÄÒµÎñÌṩµÄ·þÎñ£¬¶ÔÓÚµçÉ̶øÑÔ£¬ÁìÓòÓÐÓû§¡¢ÉÌÆ·¡¢¶©µ¥¡¢ºì°ü¡¢Ö§¸¶ÒµÎñµÈµÈ£¬²»Í¬µÄÁìÓòÌṩ²»Í¬µÄ·þÎñ£¬
ÕâЩ²»Í¬µÄÁìÓò¹¹³ÉÒ»¸ö¸öÄ£¿é£¬Á¼ºÃµÄÄ£¿é»®·ÖºÍ½Ó¿ÚÉè¼Æ·Ç³£ÖØÒª£¬Ò»°ãÊDzο¼¸ßÄÚ¾Û¡¢½Ó¿ÚÊÕÁ²µÄÔÔò£¬
ÕâÑù¿ÉÒÔÌá¸ßÕû¸öϵͳµÄ¿ÉÓÃÐÔ¡£µ±È»¿ÉÒÔ¸ù¾ÝÓ¦ÓùæÄ£µÄ´óС£¬Ä£¿é¿ÉÒÔ²¿ÊðÔÚÒ»Æð£¬¶ÔÓÚ´ó¹æÄ£µÄÓ¦Óã¬Ò»°ãÊǶÀÁ¢²¿ÊðµÄ¡£
¸ß²¢·¢£º
ÒµÎñ²ã¶ÔÍâÐÒéÒÔNIOµÄRPC·½Ê½±©Â¶£¬¿ÉÒÔ²ÉÓñȽϳÉÊìµÄNIOͨѶ¿ò¼Ü£¬Èçnetty¡¢mina
¿ÉÓÃÐÔ£º
ΪÁËÌá¸ßÄ£¿é·þÎñµÄ¿ÉÓÃÐÔ£¬Ò»¸öÄ£¿é²¿ÊðÔÚ¶à¸ö½Úµã×öÈßÓ࣬²¢×Ô¶¯½øÐиºÔØ×ª·¢ºÍÊ§Ð§×ªÒÆ;
×î³õ¿ÉÒÔÀûÓÃVIP+heartbeat·½Ê½£¬Ä¿Ç°ÏµÍ³ÓÐÒ»¸öµ¥¶ÀµÄ×é¼þHA,ÀûÓÃzookeeperʵÏÖ(±ÈÔÀ´·½°¸µÄÓŵã)
Ò»ÖÂÐÔ¡¢ÊÂÎñ£º
¶ÔÓÚ·Ö²¼Ê½ÏµÍ³µÄÒ»ÖÂÐÔ£¬¾¡Á¿Âú×ã¿ÉÓÃÐÔ£¬Ò»ÖÂÐÔ¿ÉÒÔͨ¹ýУ¶ÔÀ´´ïµ½×îÖÕÒ»ÖµÄ״̬¡£ |