»ùÓÚÔÆµÄÓ¦ÓÃÓëÔËÐÐÔÚ˽ÓÐÊý¾ÝÖÐÐĵÄÓ¦ÓÃÖ®¼ä×î´óµÄ²î±ð¾ÍÊÇ¿ÉÀ©Õ¹ÐÔ¡£ÔÆÌṩÁ˰´ÐèÀ©Õ¹µÄÄÜÁ¦£¬Äܹ»¸ù¾Ý¸ºÔصIJ¨¶¯¶ÔÓ¦ÓýøÐÐÀ©Õ¹ºÍÊÕËõ¡£µ«ÊÇ´«Í³Ó¦ÓÃÒª³ä·Ö·¢»ÓÔÆµÄÓÅÊÆ£¬²¢²»ÊǼòµ¥µØ½«Ó¦Óò¿Êðµ½ÔÆÉϾÍÍòÊ´󼪣¬¶øÊÇÐèÒª¸ù¾ÝÔÆµÄÌØµãÎ§ÈÆ¿ÉÀ©Õ¹ÐÔÖØÐ½øÐмܹ¹Éè¼Æ£¬½üÈÕAppDynamicsµÄ¿ª·¢²¼µÀÕßDustin.Whittle׫ÎIJûÊöÁËÊʺÏÔÆ¶Ë²¿ÊðµÄÓ¦Óüܹ¹£¬¶ÔÎÒÃÇ´«Í³Ó¦ÓÃÍùÔÆ¶Ë²¿ÊðÓкܴóµÄÆô·¢ºÍ½è¼øÒâÒå¡£
Ó¦Óõļܹ¹
Dustin.Whittle¸ø³öÁËÔÆÓ¦ÓõÄʾÀý¼Ü¹¹£¬Ëü¾ßÓи߶ȵĿÉÀ©Õ¹ÐÔ£¬ÈçÏÂͼËùʾ£º

ÔÚÕâ¸öͼÖУ¬Ó¦Óð´ÕÕ·Ö²ãµÄÀíÄî½øÐÐÁ˲ð·Ö£¬·Ö±ð½éÉÜÈçÏ£º
¿Í»§¶Ë²ã£º¿Í»§¶Ë²ã°üº¬ÁËÕë¶ÔÄ¿±êƽ̨µÄÓû§½çÃæ£¬¿ÉÄÜ»á°üÀ¨»ùÓÚWebµÄ¡¢Òƶ¯¶ËµÄÉõÖÁÊÇÅÖ¿Í»§¶ËµÄÓû§½çÃæ¡£Ò»°ãÀ´½²£¬Õâ¿ÉÄÜ»áÊÇWebÓ¦Ó㬰üº¬ÖîÈçÓû§¹ÜÀí¡¢»á»°¹ÜÀí¡¢Ò³Ãæ¹¹½¨µÈ¹¦ÄÜ£¬µ«ÊÇÆäËû¿Í»§¶ËËù·¢ÆðµÄ½»»¥¶¼ÐèÒªÒÔRESTful·þÎñµÄÐÎʽµ÷Ó÷þÎñÆ÷¡£
·þÎñ£º·þÎñÆ÷°üº¬ÁË»º´æ·þÎñÒÔ¼°¾ÛºÏ£¨aggregate£©·þÎñ£¬ÆäÖлº´æ·þÎñÖгÖÓмǼϵͳ£¨system
of record£©ÖÐ×îеÄÒÑ֪״̬£¬¶ø¾Û¼¯·þÎñ»áÖ±½ÓÓë¼Ç¼ϵͳ½»»¥£¬²¢ÇÒ»áÖ´ÐÐÒ»Ð©ÆÆ»µÐԵIJÙ×÷£¨»á¸Ä±ä¼Ç¼ϵͳÖеÄ״̬£©¡£
¼Ç¼ϵͳ£º¼Ç¼ϵͳÊÇÁìÓòÌØ¶¨µÄ·þÎñ¶Ë£¬Ëü»áÇý¶¯ÒµÎñ¹¦ÄÜ£¬¿ÉÄÜ»á°üÀ¨¿Í»§¹ÜÀíϵͳ¡¢²É¹ºÏµÍ³¡¢Ô¤¶¨ÏµÍ³µÈµÈ£¬ÕâЩºÜ¿ÉÄÜÊÇÒÅÁôϵͳ£¬ÄãµÄÓ¦ÓÃÐèÒªÓëÆä½øÐн»»¥¡£¾Û¼¯·þÎñÒª¸ºÔð½«ÄãµÄÓ¦ÓôÓÕâÐ©ÌØÓеļǼϵͳÖгéÏó³öÀ´£¬²¢ÎªÄãµÄÓ¦ÓÃÌṩһÖµÄǰ¶Ë½Ó¿Ú¡£
ESB£ºµ±¼Ç¼ϵͳ·¢ÉúÊý¾Ý±ä»¯µÄʱºò£¬ËüÐèÒª´¥·¢µ½Ö¸¶¨Ö÷Ì⣨topic£©µÄʼþ£¬Õâ¾ÍÊÇʼþÇý¶¯¼Ü¹¹£¨event-driven
architecture£¬EDA£©Äܹ»Ó°ÏìÓ¦Óõĵط½ÁË£ºµ±¼Ç¼ϵͳ½øÐÐÁËÒ»ÏîÆäËûϵͳ¿ÉÄܸÐÐËȤµÄ±ä¸üʱ£¬Ëü»á´¥·¢Ò»¸öʼþ£¬ÈκιØ×¢¼Ç¼ϵͳµÄÆäËûϵͳ»á¼àÌýµ½Õâ¸öʼþ£¬²¢×÷³ö¶ÔÓ¦µÄÏìÓ¦¡£ÕâÒ²ÊÇʹÓÃʹÓÃÖ÷Ì⣨topic£©¶ø²»ÊǶÓÁУ¨queue£©µÄÔÒò£º¶ÓÁÐÖ§³Öµã¶Ôµã£¨point-to-point£©µÄÏûÏ¢£¬¶øÖ÷ÌâÖ§³Ö·¢²¼-¶©ÔÄ£¨publish-subscribe£©µÄÏûÏ¢»òʼþ¡£µ±ÓëÒÅÁôϵͳ½øÐм¯³Éʱ£¬ÎÒÃÇºÜÆÚÍûÕâЩÒÅÁôµÄϵͳÄܹ»ÃâÔâ¸ºÔØµÄÓ°Ïì¡£Òò´Ë£¬ÎÒÃÇʵÏÖÁËÒ»¸ö»º´æÏµÍ³£¬Õâ¸ö»º´æÏµÍ³Î¬³ÖÁ˼ǼϵͳÖÐËùÓÐ×îеÄÒÑ֪״̬¡£»º´æÏµÍ³»áʹÓÃEDAµÄ¹æÔò¼àÌý¼Ç¼ϵͳµÄ±ä»¯£¬Ëü»á¸üÐÂ×Ô¼ºËù±£´æÊý¾ÝµÄ°æ±¾£¬´Ó¶ø±£Ö¤Óë¼Ç¼ϵͳÖеÄÊý¾ÝÏàÆ¥Åä¡£ÕâÊÇÒ»¸öºÜÇ¿´óµÄ²ßÂÔ£¬²»¹ý»á½«Ò»ÖÂÐÔÄ£ÐͱäΪ×îÖÕÒ»ÖÂÐÔ£¬Ò²¾ÍÊÇ˵Èç¹ûÄãÔÚÉ罻ýÌåÉÏ·¢²¼Ò»Ìõ״̬µÄ»°£¬ÄãµÄÅóÓÑ¿ÉÄÜÔÚ¼¸ÃëÖÓÉõÖÁ¼¸·ÖÖÓÖ®ºó²ÅÄÜ¿´µ½£¬Êý¾Ý×îÖÕÊÇÒ»Öµģ¬µ«ÓÐʱÄãËù¿´µ½µÄÓëÄãµÄÅóÓÑËù¿´µ½µÄ²¢²»Ò»Ö¡£Èç¹ûÄܽÓÊÜÕâÖÖÒ»ÖÂÐԵϰ£¬¾ÍÄÜÔںܴó³Ì¶ÈÉÏʵÏÖ¿ÉÀ©Õ¹ÐÔµÄÊÕÒæ¡£
NoSQL£ºÔÚÊý¾Ý´æ´¢·½Ã棬ÓкܶàµÄ¿ÉÑ¡·½°¸£¬µ«Èç¹ûÒª´æ´¢´óÁ¿Êý¾ÝµÄ»°£¬Ê¹ÓÃNoSQL´æ´¢Äܹ»¸üÈÝÒ×µØÀ©Õ¹¡£ÓжàÖÖNoSQL´æ´¢¿É¹©Ñ¡Ôñ£¬²»¹ýÕâҪƥÅäËù´æ´¢Êý¾ÝµÄÌØµã£¬ÈçMongoDBÊʺϴ洢¿ÉËÑË÷µÄÊý¾Ý£¬Neo4jÊʺϴ洢¸ß¶È»¥Ïà¹ØÁªµÄÊý¾Ý£¬¶øCassandraÊʺϴ洢¼ü/Öµ¶Ô£¬ÏñSolrÕâÑùµÄËÑË÷Ë÷ÒýÓÐÀûÓÚ¼ÓËÙ¶Ô¾³£·ÃÎÊÊý¾ÝµÄ²éѯ¡£
½«Ó¦Óòð·ÖΪ¶à¸ö²ãµÄʱºò£¬×îºÃµÄģʽ¾ÍÊÇʹÓÃÃæÏò·þÎñ¼Ü¹¹£¨service-oriented architecture£¬SOA£©¡£ÒªÊµÏÖÕâÒ»µã£¬¿ÉÒÔʹÓÃSOAP£¬Ò²¿ÉÒÔʹÓÃREST£¬µ«ÊÇREST¸üΪºÏÊÊ£¬ÒòΪËü¿ÉÀ©Õ¹ÐÔ¸üÇ¿¡£×÷Õß½ÓÏÂÀ´¶ÔRESTµÄÀíÄî½øÐÐÁËÉîÈëµÄ²ûÊö£¬InfoQÉϹØÓÚRESTÒÑÓкܶàÏà¹ØµÄÎÄÕ£¬ÈçÕâÀïºÍÕâÀÉõÖÁ°üÀ¨Roy
Fielding¾µä²©Ê¿ÂÛÎĵÄÖÐÒë±¾£¬ËùÒÔÕâÀï²»ÔÙ׸Êö¡£²»¹ý£¬×÷ÕßÔÚÕâÀïÌØ±ðÇ¿µ÷ÁËRESTful Web·þÎñÄܹ»±£³ÖÎÞ״̬ÐÔ£¨stateless£©¡£ÎÞ״̬ÊÇʵÏÖ¿ÉÀ©Õ¹ÐԵĹؼüÐèÇó£¬ÒòΪÎÞ״̬£¬ËùÒÔÇëÇó¿ÉÒÔÓÉÈκÎÒ»¸ö·þÎñÆ÷ÏìÓ¦¡£Èç¹ûÄãÔÚ·þÎñ²ãÉÏÐèÒª¸ü¶àµÄÈÝÁ¿Ê±£¬Ö»ÐèҪΪ¸Ã²ãÌí¼ÓÐéÄâ»ú¼´¿É£¬¶ø²»Ðè¹Ø×¢¿Í»§¶Ë״̬±£³ÖµÄÎÊÌ⣬¸ºÔØ¿ÉÒÔºÜÈÝÒ×µØÖØÐ·ÖÅä¡£
²¿Êðµ½ÔƶË
Ç°Ãæ½éÉÜÁË»ùÓÚÔÆµÄÓ¦Óüܹ¹£¬½ÓÏÂÀ´×÷Õß²ûÊöÁËÕâÑùµÄÓ¦ÓøÃÈçºÎ²¿Êðµ½Ôƶˡ£
RESTful Web·þÎñÒª²¿Êðµ½WebÈÝÆ÷ÖУ¬²¢ÇÒҪλÓÚÊý¾Ý´æ´¢Ö®Ç°¡£ÕâЩWeb·þÎñÊÇûÓÐ״̬µÄ£¬Ö»»á·´Ó³Æä±©Â¶µÄµ×²ãÊý¾ÝµÄ״̬£¬Òò´Ë¿ÉÒÔ¸ù¾ÝÐèÒª²¿ÊðÈÎÒâÊýÁ¿µÄ·þÎñÆ÷¡£ÔÚ»ùÓÚÔÆµÄ²¿ÊðÖУ¬¿ªÊ¼Ê±¿ÉÒÔ¿ªÆô×ã¹»µÄʵÀýÒÔÓ¦¶ÔÈÕ³£µÄÐèÇó£¬È»ºóÅäÖõ¯ÐÔ²ßÂÔ£¬´Ó¶ø¸ù¾Ý¸ºÔØÔö¼Ó»ò¼õÉÙ·þÎñÆ÷µÄÊýÁ¿¡£ºâÁ¿±¥ºÍ¶ÈµÄ×îºÃÖ¸±ê¾ÍÊÇ·þÎñµÄÏìӦʱ¼ä¡£ÁíÍ⻹ÐèÒª¿¼ÂÇÕâЩ·þÎñËùʹÓõĵײãÊý¾Ý´æ´¢µÄÐÔÄÜ¡£Ê¾ÀýµÄ²¿ÊðͼÈçÏÂËùʾ£º

Èç¹ûÔÚÔÆ²¿ÊðʱÓÐEDAµÄÐèÇó£¬ÄÇô¾ÍÐèÒª²¿ÊðESB£¬×÷Õ߸ø³öµÄ½¨ÒéÊǸù¾Ý¹¦ÄܶÔESB½øÐзÖÇø£¨partitioning£©£¬ÕâÑùÒ»¸ösegmentµÄ¹ý´ó¸ºÔز»»áÓ°Ïìµ½ÆäËûµÄsegment¡£ÈçÏÂͼËùʾ£º

ÕâÖÖ·ÖÀëʹSystem 1µÄ¸ºÔØÓëSystem 2µÄ¸ºÔØÊµÏÖÁ˸ôÀë¡£Èç¹ûSystem 1²úÉúµÄ¸ºÔØÍÏÂýÁËESB£¬ËüÖ»»áÓ°Ïìµ½×Ô¼ºµÄsegment£¬²¢²»»áÓ°Ïìµ½System
2µÄsegment£¬ÒòΪËü²¿ÊðÔÚÆäËûÓ²¼þÉÏ¡£Èç¹ûESB²úÆ·Ö§³ÖµÄ»°£¬ÎÒÃÇ»¹¿ÉÒÔ¸øÖ¸¶¨µÄsegmentÌí¼Ó·þÎñÆ÷À´ÊµÏÖÀ©Õ¹¡£
»ùÓÚÔÆµÄÓ¦ÓÃÓ봫ͳӦÓÃÓÐןܴóµÄ²î±ð£¬ÒòΪËüÓÐ×Ų»Í¬µÄÀ©Õ¹ÐÔÐèÇó¡£»ùÓÚÔÆµÄÓ¦ÓñØÐëÓÐ×ã¹»µÄµ¯ÐÔÒÔÓ¦¶Ô·þÎñÆ÷µÄÌí¼ÓÓëÒÆ³ý£¬±ØÐëËÉñîºÏ£¬±ØÐ뾡¿ÉÄܵÄÎÞ״̬£¬±ØÐëÔ¤Ïȹ滮ʧ°ÜµÄÇé¿ö£¬²¢ÇÒ±ØÐëÄܹ»´Ó¼¸Ì¨·þÎñÆ÷À©Õ¹µ½³ÉǧÉÏÍǫ̀·þÎñÆ÷¡£
Õë¶ÔÔÆÓ¦Óò¢Ã»ÓÐΨһÕýÈ·µÄ¼Ü¹¹£¬µ«ÊDZ¾ÎÄËù²ûÊöµÄRESTful·þÎñÒÔ¼°Ê¼þÇý¶¯¼Ü¹¹È´ÊǾ¹ýʵ¼ù¼ìÑéÓÐЧµÄ¼Ü¹¹¡£×÷ÕßÈÏΪRESTºÍEDAÊÇʵÏÖÔÆ¶Ë¿ÉÀ©Õ¹Ó¦ÓõĻù±¾¹¤¾ß¡£
Ŀǰ£¬¹úÄÚÐí¶à´«Í³µÄÈí¼þ³§ÉÌÕýÔÚÖð½¥ÍùÔÆ¶ËÇ¨ÒÆ£¬Ï£Íû±¾ÎÄËù²ûÊöµÄ¼Ü¹¹ÀíÄîÄܹ»Îª¶ÁÕßÌṩһЩ½è¼ø¡£ |