µ±Ç°Î»ÖãºÖ÷Ò³ > ²é¿´ÄÚÈÝ

Òì²½ÇëÇóºÍÒì²½µ÷ÓÃÓÐÇø±ð£¿Ö±µ½¿´µ½ÁË7ÄêÇ°µÄÒ»¸öÎÊ´ð

·¢²¼Ê±¼ä£º2021-05-29 00:00| ÓРλÅóÓѲ鿴

¼ò½é£º±¾ÎÄתÔØ×Ô΢ÐŹ«Öںš¸³ÌÐòÐÂÊӽ硹£¬×÷Õ߶þʦÐÖ¡£×ªÔر¾ÎÄÇëÁªÏµ³ÌÐòÐÂÊӽ繫Öںš£ µ±Äã´ò¿ª±¾ÎÄ£¬Ê×ÏÈÏë˵µÄÊÇ£¬ÕâƪÎÄÕ²»½ö½öÊÇÔÚ½²Ò»¸ö֪ʶµã£¬¸üÖØÒªµÄÊÇÔÚ½²Ò»ÖÖѧϰ·½·¨£ºÖÊÒÉÓëÇóÖ¤¡£ Ç°ÑÔ ×î½üÔÚÑо¿Spring BootµÄÒì²½´¦Àí£¬×¼±¸Ð´Ò»ÆªÎÄÕ¡£ÔÚ¡­¡­

±¾ÎÄתÔØ×Ô΢ÐŹ«Öںš¸³ÌÐòÐÂÊӽ硹£¬×÷Õ߶þʦÐÖ¡£×ªÔر¾ÎÄÇëÁªÏµ³ÌÐòÐÂÊӽ繫Öںš£ 

µ±Äã´ò¿ª±¾ÎÄ£¬Ê×ÏÈÏë˵µÄÊÇ£¬ÕâƪÎÄÕ²»½ö½öÊÇÔÚ½²Ò»¸ö֪ʶµã£¬¸üÖØÒªµÄÊÇÔÚ½²Ò»ÖÖѧϰ·½·¨£ºÖÊÒÉÓëÇóÖ¤¡£

Ç°ÑÔ

×î½üÔÚÑо¿Spring BootµÄÒì²½´¦Àí£¬×¼±¸Ð´Ò»ÆªÎÄÕ¡£ÔÚËѼ¯×ÊÁÏʱ·¢ÏÖһƪÎÄÕ¡¶SpringBootÖÐÒì²½ÇëÇóºÍÒì²½µ÷Óá·£¬ÒÔ¼°Ðí¶àËüµÄÑÜÉúÎÄÕ¡£ÎÄÕµÄÈ·²»´í£¬µ«ÎÄÕÂÖÐÌáµ½µÄ“Òì²½ÇëÇóºÍÒì²½µ÷ÓÔÕâÁ½¸ö¸ÅÄһֱ°Ù˼²»µÃÆä½â£¬ÑÜÉúÎÄÕÂÖÐÒ²ÊÇÔÚ»ì×ÅÓá£

ÖÕÓÚÈ̲»×¡Ïë̽¾¿Ò»·¬£¬·¢ÏÖ³ýÁËÄÇƪÎÄÕºÍÑÜÉúµÄÎÄÕÂÖ®Í⣬²¢Ã»ÓÐÆäËûÖ¤¾ÝÀ´Çø±ðÕâÁ½¸ö¸ÅÄî¡£Ö±µ½ÔÚStack OverflowÉÏËѵ½ÁËһƪÆßÄêÇ°µÄÎÄÕ£¬Õâ¸öÒÉ»ó²Å½â¿ª¡£

½ñÌì¾Í´ø´ó¼ÒÒ»Æð̽¾¿Ò»Ï“Òì²½ÇëÇóºÍÒì²½µ÷ÓÔÕâÁ½¸ö¸ÅÄî¡£

Òì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð

ÉÏÃæÌáµ½µÄÎÄÕÂÖÐÓÐÕâÑùÁ½¶Î»°À´½²Òì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð£º

Çø±ðÒ»£ºÒì²½ÇëÇóÓÃÀ´½â¾ö²¢·¢ÇëÇó¶Ô·þÎñÆ÷Ôì³ÉµÄѹÁ¦£¬´Ó¶øÌá¸ß¶ÔÇëÇóµÄÍÌÍÂÁ¿;¶øÒì²½µ÷ÓÃÊÇÓÃÀ´×öһЩ·ÇÖ÷ÏßÁ÷³ÌÇÒ²»ÐèҪʵʱ¼ÆËãºÍÏìÓ¦µÄÈÎÎñ£¬±ÈÈçͬ²½ÈÕÖ¾µ½kafkaÖÐ×öÈÕÖ¾·ÖÎöµÈ¡£

Çø±ð¶þ£ºÒì²½ÇëÇóÊÇ»áÒ»Ö±µÈ´ýresponseÏàÓ¦µÄ£¬ÐèÒª·µ»Ø½á¹û¸ø¿Í»§¶ËµÄ;¶øÒì²½µ÷ÓÃÍùÍù»áÂíÉÏ·µ»Ø¸ø¿Í»§¶ËÏìÓ¦£¬Íê³ÉÕâ´ÎÕû¸öµÄÇëÇó£¬ÖÁÓÚÒì²½µ÷ÓõÄÈÎÎñºǫ́ÔËÐоͿÉÒÔÁË£¬¿Í»§¶Ë²»»á¹ØÐÄ¡£

×ÐϸÔĶÁºÍ·ÖÎöÖ®ºó£¬ÎÄÕÂÖÐÌáµ½µÄÒì²½ÇëÇóÓ¦¸ÃÖ¸µÄÊÇͨ¹ýServletµÄAsyncContext¶ÔÏó»òSpringÖеÄCallable¡¢DeferredResult¡¢WebAsyncTaskµÈ·½Ê½½øÐÐÒµÎñµÄÒì²½´¦Àí¡£¶øÎÄÖÐÒì²½µ÷ÓÃÖ¸µÄÊÇÀàËÆÔÚSpringÖе÷ÓÃ@Async×¢½âµÄÒì²½·½·¨¡£

Äã¿´ÁËÉÏÃæµÄÁ½¸ö¸ÅÄîµÄÇø±ð£¬ÊÇ·ñ¾õµÃºÜÓеÀÀí?¸Ð¾õÒѾ­³É¹¦Çø·ÖÁËÒì²½ÇëÇóºÍÒì²½µ÷ÓÃÁËÂð?

ÄÇô£¬ÊÇ·ñÏë¹ýÒ»¸öÎÊÌ⣬ÎÒÃÇͨ³£ËµÇëÇóÒ»¸ö½Ó¿ÚºÍµ÷ÓÃÒ»¸ö½Ó¿ÚʱÄѵÀ²»ÊÇÒ»¸öÒâ˼Âð?ÔõôÔÚÕâÀï¾Í±ä³ÉÁ½¸ö½ØÈ»²»Í¬µÄ¸ÅÄîÁË?

ÒÉÎÊ̽¾¿

´ø×ÅÉÏÃæµÄÒÉÎÊ£¬¿ªÊ¼ÓÃËÑË÷ÒýÇæ½øÐÐËÑË÷¡£·¢ÏÖµ±ËÑË÷“Òì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð”ʱ£¬ËѳöÀ´µÄÄÚÈÝ»ù±¾É϶¼À´×ÔÉÏÊöÎÄÕ¼°ÑÜÉúÎÄÕ£¬»òÕßÊǽ²Òì²½ºÍͬ²½µÄÇø±ð¡£Õâ²¢²»ÄÜ˵Ã÷ʲô£¬µ«Ò²ËµÃ÷ÁËÕâÁ½¸ö¸ÅÄîµÄÇø±ð²¢Ã»Óеõ½ÆÕ±éµÄÈÏ¿É¡£

ÓÚÊÇ¿ªÊ¼³¢ÊÔͨ¹ýÓ¢ÎÄËÑË÷ÒýÇæ½øÐÐËÑË÷¡£ÏÈËÑÁË“the difference between asynchronous call and asynchronous request”£¬Ã»ÓÐÏëÒªµÄ½á¹û£¬´ó¶àÊýÎÄÕ»¹Êǽ²Òì²½ºÍͬ²½µÄÇø±ð¡£

¸Ä±ä¹Ø¼ü×ÖËÑ“the difference between asynchronous call and asynchronous method”£¬½á¹ûÒ»Ñù£¬²¢Ã»ÓÐÏëÒªµÄÎÄÕ¡£µ«È´ËѳöÁËÒ»¸öStack OverflowÉϵĹØÁªÎÊÌâ“Synchronous Vs Asynchronous related to web services”¡£

ÔÚ¸ÃÎÊÌâµÄÏÂÃæ³öÏÖÁËÁ½¸ö´Ê×飺Asynchronous serviceºÍAsynchronous calls¡£ÔÙ×Ðϸ¿´Á½¸ö´Ê×éµÄ½âÊÍ£¬·¢ÏÖÕýÊÇÏëÒªµÄ½á¹û¡£

Òì²½µ÷ÓÃÓëÒì²½·þÎñ

ÆäʵÔÚÓ¢ÎÄËÑË÷µÄ¹ý³ÌÖÐÒѾ­·¢ÏÖÁË£¬Ì½ÌÖÒì²½Óëͬ²½µÄÇø±ðʱ£¬¾­³£»á³öÏÖasynchronous requestºÍasynchronous callÕâÁ½¸ö´Ê×飬¶øÇÒËüÃǶ¼ÊÇÔÚ½²Òì²½Óëͬ²½µÄÇø±ð£¬¶øûÓн²ËüÃÇÁ½¸öµÄÇø±ð¡£ËùÒÔÎÞÂÛÒì²½µ÷Óû¹ÊÇÒì²½ÇëÇó±¾ÖÊÉÏÊÇÒ»»ØÊ¡£

¶ø¡¶SpringBootÖÐÒì²½ÇëÇóºÍÒì²½µ÷Óá·Ò»ÎÄÖÐËù˵µÄÒì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð£¬¸ÅÄîÉÏÒ²²¢Ã»ÓÐ˵Çå³þʲôÊÇÒì²½ÇëÇó£¬Ê²Ã´ÊÇÒì²½µ÷Ó᣶øÇÒÖ»ÓÐÄǼ¸ÆªÎÄÕÂÕâô½²£¬ËùÒÔ¿ÉÒÔÈÏΪÒì²½ÇëÇóºÍÒì²½µ÷ÓÃÊÇͬһ¸ö¸ÅÄî(asynchronous call)¡£¶ø×÷ÕßËù½²µÄ“Òì²½µ÷ÓÔָµÄÓ¦¸ÃÒì²½·þÎñ(Asynchronous service)¡£

ΪÁ˽øÒ»²½Ö¤Ã÷ÉÏÃæµÄ½áÂÛ£¬ÏÂÃ潫ÎÊ´ðÖжÔÁ½¸ö¸ÅÄîµÄ½âÊͼòµ¥·­Òëһϡ£

Asynchronous serviceºÍAsynchronous calls

Asynchronous service

µ±ÄãµÄweb·þÎñÖ´ÐÐÐèÒªºÄ·Ñ´óÁ¿Ê±¼ä£¬±ÈÈç´ÓÎļþϵͳÖжÁÈ¡Ò»¸ö´óÎļþ¡£´Ëʱ£¬Èç¹ûÄãʹÓÓͬ²½”µÄweb·þÎñ£¬ÄÇô¿Í»§¶Ë±ØÐëµÈ´ý´¦ÀíÍê³É£¬Í¨³£»á×èÈûỊ̈߳¬¶ÔÓڸ߲¢·¢µÄ·þÎñ£¬»á³öÏÖÐÔÄÜÎÊÌâ¡£

Èç¹û½«web·þÎñÉèÖÃΪÒì²½·þÎñ£¬ÄÇô¿ÉÒ԰ѺÄʱ·þÎñίÍиøÁíÍâÒ»¸öỊ̈߳¬»òÕßʹÓ÷Ç×èÈû»úÖÆ£¬ÔÚδÀ´µÄij¿Ì½øÐзµ»Ø¡£»¹ÒÔ¶ÁÈ¡´óÎļþΪÀý£¬¿ÉÒÔʹÓÃÒì²½µÄReadFile·½·¨À´¶ÁÈ¡´óÎļþ¡£ÕâÑù±ãÄܱÜÃâÏß³Ì×èÈû£¬Ìá¸ßÍÌÍÂÁ¿¡£

Asynchronous calls

ÖµµÃ×¢ÒâµÄÊÇ£ºÄã¿ÉÒÔͨ¹ýÒì²½µÄ·½Ê½µ÷ÓÃÒ»¸ö·ÇÒì²½µÄµÄ·þÎñ¡£±ÈÈçÔÚJavaScriptÖеÄAjaxµÄµ÷Óãº

  1. var jqxhr = $.ajax( "AnyService.svc" ) 
  2.     .done(function() { alert("success"); }) 
  3.     .fail(function() { alert("error"); }) 
  4.     .always(function() { alert("complete"); }); 
  5.  
  6. alert("Called"); 

Ö´ÐÐÉÏÊöʾÀý£¬Ê×ÏÈչʾ“Called”£¬È»ºóչʾ“success”£¬ÒòΪִÐеĹý³ÌÖв¢²»ÐèÒªµÈµ½·þÎñ·µ»ØµÄ½á¹û¡£¶ø±»µ÷ÓõķþÎñÒ²²»ÐèÒªÊÇÒì²½µÄ¡£

×ÜÖ®£¬·þÎñʵÏÖµÄÒì²½Óëͬ²½ÌØÐÔÍêÈ«¶ÀÁ¢ÓÚ¿Í»§¶Ëµ÷ÓõÄÒì²½ºÍͬ²½ÌØÐÔ¡£Ò²¾ÍÊÇ˵¿Í»§¶Ë¿ÉÒÔÒì²½µÄÈ¥µ÷ÓÃͬ²½·þÎñ£¬¶øÇÒ¿Í»§¶ËÒ²¿ÉÒÔͬ²½µÄÈ¥µ÷ÓÃÒì²½·þÎñ¡£

С½á

ͨ¹ýÉÏÃæµÄ×·×Ù·ÖÎö£¬¹ØÓÚÒì²½ÇëÇóºÍÒì²½µ÷ÓÃÎÒÃÇ¿ÉÒÔÀí½âΪÊÇÒ»»ØÊ£¬Í¬Ê±ÎÒÃÇ»¹µÃÖªÁËËùνµÄ¿Í»§¶ËÒì²½ºÍͬ²½Óë·þÎñµÄÒì²½Óëͬ²½ÊÇÏ໥¶ÀÁ¢µÄ¡£Ò²¾ÍÊÇ¿Í»§¶Ë¿ÉÒÔÒì²½ÇëÇóÒ²¿ÉÒÔͬ²½ÇëÇ󣬷þÎñ¿ÉÒÔÒì²½´¦ÀíÒ²¿ÉÒÔͬ²½´¦Àí¡£Á½Á½×éºÏ¿ÉÒÔÓÐËÄÖÖÇé¿ö¡£

ÁíÍ⣬¸üÖØÒªµÄÊÇÎÒÃÇҪѧ»áͨ¹ýËÑË÷ÖÐÓ¢ÎÄ×ÊÁÏÀ´½â´ð×Ô¼ºÐÄÖеÄÒɻ󣬶øÇÒÓ¢ÎÄ×ÊÁÏÏà¶Ô¸ü׼ȷһЩ£¬ËùÒÔÊ×ÍÆÓ¢ÎÄ¡£ÔÚ̽Ë÷ÒÉ»óÎÊÌâµÄ¹ý³ÌÖÐÍùÍù»¹ÄÜÓв»ÉÙÒâÍâµÄÊÕ»ñ¡£


±¾ÎÄתÔØ×ÔÍøÂ磬ԭÎÄÁ´½Ó£ºhttps://mp.weixin.qq.com/s/Vqj7L9hQL9b11LEdDWp-HQ
±¾Õ¾²¿·ÖÄÚÈÝתÔØÓÚÍøÂ磬°æȨ¹éÔ­×÷ÕßËùÓУ¬×ªÔØ֮ĿµÄÔÚÓÚ´«²¥¸ü¶àÓÅÐã¼¼ÊõÄÚÈÝ£¬ÈçÓÐÇÖȨÇëÁªÏµQQ/΢ÐÅ£º153890879ɾ³ý£¬Ð»Ð»£¡

ÍƼöͼÎÄ

  • ÖÜÅÅÐÐ
  • ÔÂÅÅÐÐ
  • ×ÜÅÅÐÐ

Ëæ»úÍƼö