Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓÃAkkaµÄActorÄ£ÐͺÍÁìÓòÇý¶¯Éè¼Æ¹¹½¨·´Ó¦Ê½ÏµÍ³
 
  3231  次浏览      28
 2018-4-25 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔInfoQ£¬±¾ÎĽéÉÜΪÁËÖ§³Ö·´Ó¦Ê½¿ª·¢£¬ActorÄ£ÐͽáºÏÁìÓòÇý¶¯Éè¼ÆÄܹ»Âú×ãÏÖ´úµ¯ÐÔµÄÐèÇó¡£

ºËÐÄÒªµã

1.ÃæÏòActor±à³ÌÊÇÃæÏò¶ÔÏó±à³ÌµÄÒ»ÖÖÌæ´ú·½°¸£»

2.½èÖúActor£¬¿ª·¢¸ß²¢·¢µÄϵͳ»á±äµÃ·Ç³£ÈÝÒ×£»

3.Actor²¢²»¾ÖÏÞÓÚµ¥¸ö½ÚµãÉϵĵ¥¸ö½ø³Ì£¬Ëü¿ÉÒÔ×÷Ϊ·Ö²¼Ê½¼¯ÈºÔËÐУ»

4.ActorºÍActorÄ£ÐÍÌṩÁË¡°·´Ó¦Ê½¡±±à³ÌËùÐèµÄËùÓÐÄÚÈÝ£»

5.ActorÓëÁìÓòÇý¶¯Éè¼ÆÊǾø¼ÑµÄ×éºÏ¡£

Ëæ×ÅÒÆ¶¯ºÍÊý¾ÝÇý¶¯Ó¦Óõı¬·¢ÐÔÔö³¤£¬Óû§ÐèÒªÔÚÈκεصãʵʱ·ÃÎÊÈκÎÄÚÈÝ¡£ÏµÍ³µÄµ¯ÐÔºÍÏìÓ¦ÐÔ²»ÔÙÊÇ¡°×îºÃÄÜÓС±µÄÌØÕ÷£¬¶øÊÇÒѾ­³ÉÎªÖØÒªµÄÒµÎñÐèÇó¡£ÒµÎñÔ½À´Ô½ÐèÒª´Ó¾²Ì¬¡¢´àÈõµÄ¼Ü¹¹×ª»»ÎªÁé»î¡¢µ¯ÐÔµÄϵͳ¡£

Òò´Ë£¬·´Ó¦Ê½¿ª·¢µÃµ½ÁËѸËÙµØÔö³¤¡£ÎªÁËÖ§³Ö·´Ó¦Ê½¿ª·¢£¬ActorÄ£ÐͽáºÏÁìÓòÇý¶¯Éè¼ÆÄܹ»Âú×ãÏÖ´úµ¯ÐÔµÄÐèÇó¡£

ActorÄ£Ð͵ÄһЩÀúÊ·

ActorÄ£ÐÍ×î³õÊÇËæ×ÅSmalltalkµÄ³öÏÖ¶ø¹¹Ë¼³öÀ´µÄ£¬µ±Ê±ÃæÏò¶ÔÏó±à³Ì£¨Object-Oriented Programming£¬OOP£©±¾Éí¸Õ¸Õ³öÏÖ²»¾Ã¡£

´óÔ¼ÔÚ2003Äê×óÓÒ£¬¼ÆËã»úµÄºËÐÄÌØÐÔ¾­ÀúÁËÒ»¸öÖØÒªµÄ±ä»¯£¬´¦ÀíÆ÷µÄËÙ¶È´ïµ½ÁËÒ»¸ö¶¥µã¡£ÔÚ½ÓÏÂÀ´µÄ½üÊ®ÎåÄêÀʱÖÓËÙ¶ÈÊdzÊÏßÐÔÔö³¤µÄ£¬¶ø²»ÊÇÏñÒÔÍùÄÇÑùÒÔÖ¸Êý¼¶µÄËÙ¶ÈÔö³¤¡£

µ«ÊÇ£¬Óû§µÄÐèÇóÔÚ³ÖÐøÔö³¤£¬¼ÆËã»úÁìÓò±ØÐëÒªÕÒµ½Ä³ÖÖ·½Ê½À´Ó¦¶Ô£¬¶àºË´¦ÀíÆ÷Ó¦Ô˶øÉú¡£¼ÆËã´¦Àí±ä³ÉÁË¡°ÍŶÓЭ×÷¡±£¬Ð§ÂʵÄÌáÉýͨ¹ý¶à¸öºËÐĵÄͨÐÅÀ´ÊµÏÖ£¬¶ø²»ÊÇ´«Í³µÄʱÖÓËٶȵÄÌáÉý¡£

ÕâÒ²ÊÇÏ̷߳¢»Ó×÷Óõĵط½£¬Õâ¸ö¸ÅÄîÒª±È¿´ÉÏÈ¥¸´ÔӵöࡣÒÔij¸öϡȱ×ÊÔ´µÄ¼òµ¥¼ÆÊýÆ÷ΪÀý£¬±ÈÈç²Ö¿âÖÐij¸ö»õÆ·µÄÊýÁ¿»òÕßij¸ö»î¶¯µÄ¿ÉÊÛÃÅÆ±¡£ÔÚÕâÑùµÄÀý×ÓÖУ¬¿ÉÄÜ»áÓкܶàÇëÇóͬʱ»ñȡһ¸ö»ò¶à¸ö²Ö¿âÖеĻõÆ·»òÃÅÆ±¡£

ÎÒÃÇ¿¼ÂÇÒ»ÖÖ³£ÓõÄʵÏÖ·½Ê½£¬Ã¿¸ö¹ºÂòÇëÇó¶¼¶ÔÓ¦Ò»¸öÏ̡߳£ÔÚÕâÖÖ·½Ê½ÖУ¬ºÜ¿ÉÄÜ»áÓжà¸ö²¢·¢ÔËÐеÄÏ̶߳¼È¥µ÷Õû¼ÆÊýÆ÷¡£ÎªÁËÂú×ãÓïÒå·½ÃæµÄÐèÇó£¬ÎÒÃǵÄÄ£ÐͱØÐëҪȷ±£ÔÚͬһ¸öʱ¼äÖ»ÄÜÓÐÒ»¸öÏß³ÌÈ¥µÝ¼õ¼ÆËãÆ÷µÄÖµ¡£ÕâÑù×öµÄÔ­ÒòÔÚÓڵݼõ²Ù×÷Éæ¼°µ½Á½¸ö²½Ö裺

1.¼ì²éµ±Ç°µÄ¼ÆÊýÆ÷£¬È·±£ËüµÄÖµÒª´óÓÚ»òµÈÓÚÒª¼õÉÙµÄÖµ£»

2.µÝ¼õ¼ÆÊýÆ÷¡£

ÏÂÃæµÄÑùÀý²ûÊöÁËÕâÁ½¸ö²½ÖèΪʲôҪ×÷Ϊһ¸öÕûÌå²Ù×÷À´Íê³É¡£Ã¿¸öÇëÇó´ú±íÁ˹ºÂòÒ»¸ö»ò¶à¸ö»õÆ·£¬Ò²¿ÉÄÜÊǹºÂòÒ»ÕÅ»ò¶àÕÅÃÅÆ±¡£¼ÙÉèÓÐÁ½¸öÏ̲߳¢·¢µØµ÷Õû¼ÆÊýÆ÷£¬¸Ã¼ÆÊýÆ÷ĿǰµÄÖµÊÇ5¡£Ïß³ÌÒ»ÏëÒª½«¼ÆÊýÆ÷µÄÖµµÝ¼õ3£¬¶øÏ̶߳þÏëÒª½«¼ÆÊýÆ÷µÄÖµµÝ¼õ4¡£ËüÃǶ¼»á¼ì²éµ±Ç°¼ÆÊýÆ÷µÄÖµ£¬²¢ÇÒ»á¶Ï¶¨¼ÆÊýÆ÷µÄÖµ´óÓÚÒªµÝ¼õµÄÊýÁ¿¡£È»ºó£¬ËüÃǶ¼»á¼ÌÐøÔËÐв¢µÝ¼õ¼ÆÊýÆ÷µÄÖµ¡£×îºóµÄ½á¹û¾ÍÊÇ5 - 4 - 3 = -2¡£ÕâÑùµÄ½á¹û»áÔì³É»õÆ·µÄ¹ý¶È·ÖÅ䣬Υ·´ÁËÌØ¶¨µÄÒµÎñ¹æÔò¡£

·ÀÖ¹ÕâÖÖ¹ý¶È·ÖÅäµÄÒ»ÖÖÔ­Éú·½Ê½¾ÍÊǽ«¼ì²éºÍµÝ¼õÕâÁ½¸ö²½Öè·Åµ½Ò»¸öÔ­×Ó²Ù×÷ÖС£½«Á½¸ö²½ÖèËø¶¨µ½Ò»¸ö²Ù×÷ÖÐÄܹ»Ïû³ý¹ºÂòÒÑÊÛóÀÎïÆ·µÄ¿ÉÄÜÐÔ£¬±ÈÈçÁ½¸öÏß³Ìͬʱ³¢ÊÔ¹ºÂò×îºóÒ»¼þÉÌÆ·¡£Èç¹ûûÓÐËøµÄ»°£¬¾ÍÓпÉÄܶà¸öÏß³Ìͬʱ¶Ï¶¨¼ÆÊýÆ÷µÄÖµ´óÓÚ»òµÈÓÚÒª¹ºÂòµÄÊýÁ¿£¬È»ºó´íÎóµØµÝ¼õ¼ÆÊýÆ÷£¬´Ó¶øµ¼Ö³öÏÖ¸ºÊýÖµ¡£

ÿ´ÎÒ»¸öÏ̵߳ķ½Ê½ÓÐÒ»¸öDZÔÚµÄÎÊÌ⣬ÄǾÍÊÇÔڸ߶ȾºÕùµÄ½×¶Î£¬ÓпÉÄܳöÏֺܳ¤µÄÏ̶߳ÓÁУ¬ËüÃǶ¼ÔڵȴýµÝ¼õ¼ÆÊýÆ÷¡£ÔÚÏÖʵÊÀ½çÖУ¬ÀàËÆµÄÀý×Ó¾ÍÊÇÈËÃÇÅŶӵȴý¹ºÂòij¸ö»î¶¯µÄÃÅÆ±¡£

ÕâÖÖ·½Ê½Óиö½Ï´óµÄÈõµã¾ÍÊÇ¿ÉÄÜ»áÔì³ÉÖÚ¶àµÄ×èÈûỊ̈߳¬Ã¿¸öÏ̶߳¼ÔڵȴýÂÖµ½ËüÃÇÈ¥Ö´ÐÐÒ»¸öÐòÁл¯µÄ²Ù×÷¡£

Èç¹ûÓ¦ÓõÄÉè¼ÆÕß²»Ð¡Ðĵϰ£¬ÄÚÔڵĸ´ÔÓÐÔÓпÉÄܻὫ¶àºËÐÄ´¦ÀíÆ÷¡¢¶àÏ̵߳ÄÓ¦Óñä³Éµ¥Ï̵߳ÄÓ¦Ó㬻òÕßµ¼Ö¹¤×÷Ïß³ÌÖ®¼ä´æÔڸ߶ȾºÕù¡£

¶àÏ̻߳·¾³µÄ¸üºÃ·½°¸

ActorÄ£ÐÍÓÅÑŵؽâ¾öÁËÕâ¸öÄÑÌâ£¬ÎªÕæÕý¶àÏ̵߳ÄÓ¦ÓÃÌṩÁËÒ»¸ö»ù´¡Ö§³Å¡£ActorÄ£Ð͵ÄÉè¼ÆÊÇÏûÏ¢Çý¶¯ºÍ·Ç×èÈûµÄ£¬ÍÌÍÂÁ¿×ÔȻҲ±»¿¼ÂÇÁ˽øÀ´¡£ËüΪ¿ª·¢ÈËÔ±ÌṩÁËÒ»ÖÖ¼ò±ãµÄ·½Ê½À´½øÐжàºËÐıà³Ì£¬²»ÔÙÐèÒª¹ØÐĸ´ÔÓÄѶ®µÄ²¢·¢¡£ÈÃÎÒÃÇ¿´Ò»ÏÂËüÊÇÈçºÎÔËÐеġ£

Actor°üº¬·¢ËÍÕߺͽÓÊÕÕߣ»Éè¼Æ¼òµ¥µÄÏûÏ¢Çý¶¯¶ÔÏóʵÏÖÒì²½ÐÔ¡£

ÎÒÃÇÖØÐ»عËÒ»ÏÂÉÏÃæËùÃèÊöµÄÃÅÆ±¼ÆÊýÆ÷³¡¾°£¬½«»ùÓÚÏ̵߳ÄʵÏÖÌæ»»ÎªActor¡£µ±È»£¬ActorÒ²ÒªÔÚÏß³ÌÖÐÔËÐУ¬µ«ÊÇActorÖ»ÓÐÔÚÓÐÊÂÇé¿É×öµÄʱºò²Å»áʹÓÃÏ̡߳£ÔÚÎÒÃǵļÆÊýÆ÷³¡¾°ÖУ¬ÇëÇóÕß´ú±íÁËCustomer Actor¡£ÃÅÆ±µÄÊýÁ¿ÏÖÔÚÓÉActorÀ´Î¬»¤£¬Ëü³ÖÓе±Ç°¼ÆÊýÆ÷µÄ״̬¡£Customer ActorºÍTickets ActorÔÚ¿ÕÏУ¨idle£©»òûÓÐÊÂÇé×öµÄʱºò£¨Ò²¾ÍÊÇûÓÐÏûÏ¢Òª´¦Àí£©¶¼²»»á³ÖÓÐÏ̡߳£

Òª³õʼ¹ºÂò²Ù×÷£¬Customer ActorÐèÒª·¢ËÍÒ»ÌõbuyÏûÏ¢¸øÒ»¸öTickets Actor¡£ÔÚÕâÑùµÄbuyÏûÏ¢Öаüº¬ÁËÒª¹ºÂòµÄÊýÁ¿¡£µ±Tickets Actor½ÓÊÕµ½buyÏûϢʱ£¬Ëü»áУÑ鹺ÂòÊýÁ¿²»³¬¹ýµ±Ç°Ê£ÓàµÄÊýÁ¿¡£Èç¹û¹ºÂòÇëÇóÊǺϷ¨µÄ£¬ÊýÁ¿¾Í»áµÝ¼õ£¬Tickets Actor»á·¢ËÍÒ»ÌõÐÅÏ¢¸øCustomer Actor£¬±íÃ÷¶©µ¥±»³É¹¦½ÓÊÜ¡£Èç¹û¹ºÂòÊýÁ¿³¬³öÁËÊ£ÓàÊýÁ¿µÄ»°£¬Tickets Actor½«»á·¢Ë͸øCustomer ActorÒ»ÌõÏûÏ¢£¬±íÃ÷¶©µ¥±»¾Ü¾øÁË¡£ActorÄ£Ðͱ¾ÉíÈ·±£´¦ÀíÊǰ´ÕÕͬ²½µÄ·½Ê½½øÐеġ£

ÔÚÏÂÃæµÄͼÖУ¬ÎÒÃÇÕ¹ÏÖÁËһЩCustomer Actor£¬ËüÃǸ÷×Ô·¢ËÍbuyÏûÏ¢¸øTickets Actor¡£ÕâЩbuyÏûÏ¢»áÔÚTickets ActorµÄÊÕ¼þÏ䣨mailbox£©ÖÐÅŶӡ£

ͼ3£ºCustomer Actor·¢ËÍbuyÏûÏ¢

Ticket Actor´¦ÀíÿÌõÏûÏ¢¡£ÈçÏÂչʾµÄÊÇÇëÇó¹ºÂòÎåÕÅÃÅÆ±µÄµÚÒ»ÌõÏûÏ¢¡£

ͼ4£ºTickets Actor´¦ÀíÏûÏ¢

Tickets Actor¼ì²é¹ºÂòÊýÁ¿Ã»Óг¬³öÊ£ÓàÃÅÆ±µÄÊýÁ¿¡£ÔÚµ±Ç°µÄÇé¿öÏ£¬ÃÅÆ±ÊýÁ¿ÊÇ15£¬Òò´Ë¹ºÂòÇëÇóÄܹ»½ÓÊÜ£¬Ê£ÓàÃÅÆ±ÊýÁ¿»áµÝ¼õ£¬Tickets Actor»¹»á·¢ËÍÒ»ÌõÏûÏ¢¸ø·¢³öÇëÇóµÄCustomer Actor£¬±íÃ÷ÃÅÆ±¹ºÂò³É¹¦¡£

ͼ5£ºTickets Actor´¦ÀíÏûÏ¢¶ÓÁÐ

Tickets Actor»á´¦ÀíÆäÊÕ¼þÏäÖеÄÿÌõÏûÏ¢¡£ÐèҪעÒ⣬ÕâÀïûÓи´ÔÓµÄÏ̻߳òËø¡£ÕâÊÇÒ»¸ö¶àÏ̵߳Ĵ¦Àí¹ý³Ì£¬µ«ÊÇActorϵͳ»á¹ÜÀíÏ̵߳ÄʹÓúͷÖÅä¡£

ÔÚÏÂÃæµÄͼÖУ¬ÎÒÃǻῴµ½µ±ÇëÇóµÄÊýÁ¿³¬¹ýÊ£Óàֵʱ£¬Tickets Actor»áÈçºÎ½øÐд¦Àí¡£ÕâÀïËùÕ¹ÏÖµÄÊǵ±ÎÒÃÇÇëÇóÁ½ÕÅÃÅÆ±£¬µ«ÊǽöÊ£Ò»ÕÅÃÅÆ±Ê±µÄÇé¿ö¡£Tickets Actor»á¾Ü¾øÕâ¸ö¹ºÂòÇëÇó²¢Ïò·¢ÆðÇëÇóµÄCustomer Actor·¢ËÍÒ»Ìõ¡°sold out¡±µÄÏûÏ¢¡£

ͼ6£ºTickets Actor¾Ü¾ø¹ºÂòÇëÇó

µ±È»£¬ÔÚÏ̷߳½ÃæÓÐÒ»¶¨¾­ÑéµÄ¿ª·¢ÈËÔ±»áÖªµÀ£¬¿É»®·ÖΪÁ½¸ö½×¶ÎµÄÐÐΪ¼ì²éºÍÃÅÆ±ÊýÁ¿µÝ¼õÄܹ»Í¨¹ýͬ²½µÄ²Ù×÷ÐòÁÐÀ´Íê³É¡£ÒÔÔÚJavaÖÐΪÀý£¬ÎÒÃÇ¿ÉÒÔʹÓÃͬ²½µÄ·½·¨»òÓï¾äÀ´ÊµÏÖ¡£µ«ÊÇ£¬»ùÓÚActorµÄʵÏÖ²»½öÔÚÿ¸öActorÖÐÌṩÁË×ÔÈ»µÄ²Ù×÷ͬ²½£¬¶øÇÒ»¹ÄܱÜÃâ´óÁ¿µÄÏ̻߳ýѹ£¬·ÀÖ¹ÕâЩÏ̵߳ȴýÂÖµ½ËüÃÇÖ´ÐÐͬ²½´úÂëÇøÓò¡£ÔÚÃÅÆ±ÑùÀýÖУ¬Ã¿¸öCustomer Actor»áµÈ´ýÏìÓ¦£¬´Ëʱ²»»á³ÖÓÐÏ̡߳£ÕâÑùËùÐγɵĽá¹û¾ÍÊÇ»ùÓÚActorµÄ·½°¸¸üÈÝÒ×ʵÏÖ£¬²¢ÇÒ»áÃ÷ÏÔ½µµÍϵͳ×ÊÔ´µÄÕ¼Óá£

Actor£º¶ÔÏóµÄºÏ·¨¼Ì³ÐÕß

ActorÊǶÔÏóµÄ×ÔÈ»¼Ì³ÐÕߣ¬Õâ²¢²»ÊÇʲôеÄÀíÄÊÂʵÉÏÒ²²»ÊÇÄÇô¾ßÓиïÃüÐÔ¡£SmalltalkµÄ·¢Ã÷ÕßAlan Kay¶¨ÒåµÄºÜ¶à¶ÔÏó·¶Ê½£¨paradigm£©ÒÀÈ»ÔÚʹÓá£ËûÇ¿µ÷ÏûÏ¢µÄÖØÒªÐÔ£¬ÉõÖÁ»¹Ëµ¶ÔÏóµÄÄÚ²¿ÊµÏÖÆäʵÊÇ´ÎÒªµÄ¡£

¾¡¹ÜSmalltalk×î³õ²¢²»ÊÇÒì²½µÄ£¬µ«ËüÒÀÈ»ÊÇ»ùÓÚÏûÏ¢µÄ£¬±¾ÖÊÉÏÀ´½²Ò»¸ö¶ÔÏóÊÇͨ¹ýÏòÁíÍâÒ»¸ö¶ÔÏó·¢ËÍÏûÏ¢À´Íê³É¹¦Äܵġ£Òò´Ë£¬ÏÖ´úµÄActorÄ£ÐÍ×ñÑ­ÁËAlan Kay×îÔçµÄÃæÏò¶ÔÏóÉè¼ÆÀíÄî¡£

ÈçÏÂÊÇAkka ActorϵͳÖÐÒ»¸ö¼òµ¥µÄJava ActorʵÏÖÑùÀý£¨ÎÒÃÇΪÿ¸öActorÉèÖÃÁËÒ»¸öΨһµÄ¡°Ä§Á¦¡±ÐòÁÐÊý×Ö£¬Ê¹ÓÃËüÀ´²ûÊö״̬£©¡£

public class DemoActor extends AbstractActor {
private final int magicNumber;
public DemoActor(int magicNumber) {
this.magicNumber = magicNumber;
}
@Override
public Receive createReceive() {
return receiveBuilder()
.match(Integer.class, i -> {
getSender().tell(i + magicNumber, getSelf());
})
.build();
}
public static Props props(int magicNumber) {
// Akka Props is used for creating Actor instances
return Props.create(DemoActor.class, () -> new DemoActor(magicNumber));
}
}

ActorµÄʵÏÖÐÎʽΪһ¸öÀ࣬Õâ¸öÀàÀ©Õ¹×ÔAkkaµÄ³éÏó»ùÀà¡£ActorµÄʵÏÖ±ØÐëÒª¸²¸ÇÒ»¸ö·½·¨£¬Ò²¾ÍÊÇcreateReceive·½·¨£¬¸Ã·½·¨¸ºÔð´´½¨Ò»¸öÏûÏ¢½ÓÊյĹ¹½¨Æ÷£¬¶¨Òå´«Èëµ½ActorʵÏÖÖеÄÏûÏ¢¶ÔÏó¸ÃÈçºÎ½øÐд¦Àí¡£

»¹Òª×¢ÒâÕâ¸öActorÊÇÓÐ״̬µÄ¡£ActorµÄ״̬¿ÉÒԷdz£¼òµ¥£¬¾ÍÏñ±¾ÀýÖеÄħÊýÒ»Ñù£¬Ò²¿ÉÒԷdz£¸´ÔÓ¡£

Òª´´½¨ActorµÄʵÀý£¬ÎÒÃÇÐèÒªÒ»¸öActorSystem¡£ActorSystemÆô¶¯Ö®ºó£¬´´½¨ActorÒ»°ãÖ»ÐèÒªÒ»ÐдúÂë¡£

ActorSystem system = ActorSystem.create("DemoSystem");
ActorRef demo = system.actorOf(DemoActor.props(42), "demo");

Actor´´½¨²Ù×÷µÄ·µ»ØÖµÊÇÒ»¸öactorÒýÓã¨actor reference£©£¬Õâ¸öactorÒýÓÃÓÃÀ´¸øActor·¢ËÍÏûÏ¢¡£

demo.tell(123, ActorRef.noSender());

ÉÏÃæÕ¹ÏÖÁ˶¨Òå¡¢´´½¨ÔËÐÐʵÀýÒÔ¼°¸øActor·¢ËÍÏûÏ¢µÄ»ù±¾²½Öè¡£µ±È»£¬Êµ¼ÊÒª×öµÄ»á±ÈÕâ¸ö¼òµ¥Àý×Ó¸ü¶àһЩ£¬µ«ÊÇÔÚ´ó¶àÊýÇé¿öÏ£¬Ê¹ÓÃActor¿ª·¢ÏµÍ³ÐèҪѧϰÈçºÎÒÔActorϵͳµÄÐÎʽʵÏÖÓ¦ÓúͷþÎñ£¬ÕâЩActorÖ®¼äͨ¹ý½»»»Òì²½ÏûÏ¢½øÐн»»¥¡£

Ϊ¸üºÃµÄÍøÂç¹¹½¨¸üºÃµÄÓ¦ÓÃ

³ýÁËÄں˺ÍÏß³ÌÒÔÍ⣬Èç½ñµÄ»·¾³»¹ÔÊÐí¿ª·¢ÈËÔ±ÀûÓøü¿ìËٵĴ洢É豸¡¢´óÁ¿µÄÄÚ´æÒÔ¼°¸ß¶È¿ÉÉìËõÇҹ㷺Á¬½ÓµÄÉ豸¡£ÕâЩ¼¼Êõ¶¼Í¨¹ýÓû§¿É½ÓÊܵļ۸ñÒÔÔÆÍйܷ½°¸ºÍ¿ìËÙÍøÂçµÄ·½Ê½Á¬½ÓÔÚÒ»Æð¡£

µ«ÊÇËæ×ÅϵͳԽÀ´Ô½°´ÕÕ·Ö²¼Ê½µÄ·½Ê½À´ÊµÏÖ£¬ÑÓ³ÙµÄÔö¼ÓÊDz»¿É±ÜÃâµÄ¡£·Ö²¼Ê½ÏµÍ³»á±»Í£»ú»òÍøÂç·ÖÇøËùÖжϣ¬Õâ¿ÉÄÜÊÇÓÉÓÚÒ»¸ö»ò¶à¸ö·þÎñÆ÷ÍÑÀ뼯Ⱥ¡¢Éú³ÉзþÎñÆ÷Ëùµ¼ÖµÄÑÓ³ÙÔì³ÉµÄ¡£¶ÔÏóÄ£ÐͲ¢²»Êʺϴ¦ÀíÕâÖÖÎÊÌâ¡£ÒòΪÿ¸öÇëÇóºÍÿ¸öÏìÓ¦¶¼ÊÇÒì²½µÄ£¬ËùÒÔActorÄ£ÐÍÄܹ»°ïÖú¿ª·¢ÈËÔ±´¦Àí¸ÃÎÊÌâ¡£

½èÖúActorÄ£ÐÍ£¬ÎÒÃÇÄܹ»ºÜ×ÔÈ»µØ¼õÉÙÑÓ³Ù¡£¼øÓÚ´Ë£¬ÎÒÃDz»ÔÙÔ¤ÆÚµÃµ½¼´Ê±µÄ½á¹û£¬ÏµÍ³Ö»»áÔÚÐèÒª·¢ËÍ»ò½ÓÊÕÏûÏ¢µÄʱºò×ö³ö·´Ó¦¡£µ±Ì½²âµ½ÑÓ³Ù½µ¼¶Ê±£¬ÏµÍ³»á×Ô¶¯×ö³ö·´Ó¦ºÍµ÷Õû£¬¶ø²»Êǽ«ÏµÍ³¹Ø±Õ¡£

ÔÚ½ÚµãËù×é³ÉµÄ·Ö²¼Ê½¼¯ÈºÖУ¬Ã¿¸ö½Úµã¶¼ÔËÐÐActorµÄÒ»¸ö×Ó¼¯£¬ÔÚÕâÑùµÄ»·¾³ÖУ¬ActorÖ®¼äͨ¹ýÒì²½ÏûÏ¢½øÐн»»¥ÊǷdz£×ÔÈ»µÄÊÂÇé¡£ÁíÍ⣬ActorÓÐÒ»Ïî»ù±¾µÄ¹¦ÄÜ£¬ÄǾÍÊÇÏûÏ¢µÄ·¢ËÍÕߺͽÓÊÕÏûÏ¢µÄActor²¢²»Ò»¶¨¾ÖÏÞÔÚͬһ¸öJVM½ø³ÌÖС£Akka×î°ôµÄÌØÐÔÖ®Ò»¾ÍÊÇÎÒÃÇ¿ÉÒÔ¹¹½¨ÔÚ¼¯ÈºÖÐÔËÐеÄϵͳ¡£Akka¼¯ÈºÊÇÔËÐÐÔÚ¶ÀÁ¢JVMÖеÄÒ»×é½Úµã¡£´Ó±à³ÌµÄ½Ç¶ÈÀ´Ëµ£¬½«ÏûÏ¢·¢ËÍÖÁÁíÍâÒ»¸öJVMÖÐÔËÐеÄActorÓ뽫ÏûÏ¢·¢Ë͸ø±¾µØJVMÖеÄActorÒ»ÑùÈÝÒס£ÈçÏÂÃæµÄͼËùʾ£¬·Ö²¼ÔÚ¶à¸ö¼¯Èº½ÚµãÉϵÄActor¿ÉÒÔ·¢ËÍÏûÏ¢¸øÆäËû¼¯Èº½ÚµãÉϵÄActor¡£

Äܹ»ÔÚ¼¯Èº»·¾³ÖÐÔËÐÐÔö¼ÓÁËActorϵͳÔÚÕûÌå¼Ü¹¹ÉϵĶ¯Ì¬ÐÔ¡£ÔÚһ̨·þÎñÆ÷¡¢Ò»¸ö½ø³ÌºÍÒ»¸öJVMÖÐÔËÐÐÊÇÒ»»ØÊ¶ù£¬ÔÚÒ»¸ö¿çÍøÂçµÄJVM¼¯ÈºÖÐÔËÐÐϵͳÔòÍêÈ«ÊÇÁíÍâÒ»»ØÊ¶ù¡£

ÔÚµ¥¸öJVMµÄ³¡¾°Ï£¬ActorÔËÐÐÔÚActorϵͳ֮ÖУ¬JVMҪô´¦ÓÚÔËÐÐÖУ¬ÒªÃ´Ã»ÓÐÔËÐС£µ«ÊÇÔÚ¼¯ÈºÖÐÔËÐеÄʱºò£¬ÈκÎÒ»¸öʱ¼äµã¼¯ÈºµÄÍØÆË½á¹¹¶¼¿ÉÄÜ·¢Éú±ä»¯¡£¼¯Èº½Úµã¿ÉÄÜ˲¼ä¾ÍÄÜÌí¼Ó½øÀ´»òÒÆ³ýµô¡£

´Ó¼¼ÊõÉÏÀ´½²£¬Ö»ÒªÓÐÒ»¸ö½Úµã´¦ÓÚÆô¶¯×´Ì¬£¬¼¯Èº±¾Éí¾ÍÊÇÆô¶¯µÄ¡£Ä³¸ö½ÚµãÉϵÄActor¿ÉÄÜ»á·Ç³£¸ßÐ˵ØÓëÆäËû½ÚµãÉϵÄActor½»»»ÐÅÏ¢£¬È»ºó£¬Ã»ÓÐÈκÎÔ¤¾¯£¬½ÚµãͻȻ¾Í¿ÉÄÜ»áå´»ú£¬Î»ÓڸýڵãÉϵÄActorÒ²¾Í±»ÒƳýÁË¡£ÆäËûµÄActor¸ÃÈçºÎÓ¦¶ÔÕâЩ±ä»¯ÄØ£¿

¼¯Èº½ÚµãµÄ¶ªÊ§»áÓ°Ïìµ½ÏûÏ¢µÄ½»»»£¬¼È»áÓ°ÏìÏûÏ¢µÄ·¢ËÍÕßÒ²»áÓ°ÏìÏûÏ¢µÄ½ÓÊÕÕß¡£

¶ÔÓÚÏûÏ¢µÄ½ÓÊÕÕßÀ´Ëµ£¬Ê¼ÖÕ´æÔÚÔ¤ÆÚµÄÏûÏ¢ÓÀÔ¶½ÓÊÕ²»µ½µÄ¿ÉÄÜÐÔ¡£½ÓÊÕµÄActorÒª½«ÕâÖÖÇé¿ö¿¼ÂǽøÈ¥£¬ÐèÒª´æÔÚÒ»¸öB¼Æ»®¡£ÔÚ´¦ÀíÒì²½ÏûϢʱ£¬Ô¤ÆÚµÄÏûÏ¢¿ÉÄܽÓÊÕ²»µ½ÊÇÄÑÃâµÄ¡£ÔÚ´ó¶àÊý³¡¾°ÖУ¬´¦Àí´«ÈëÏûÏ¢µÄ¶ªÊ§²¢²»ÐèÒª¸ÐÖªµ½¼¯ÈºµÄ´æÔÚ¡£

¶øÁíÒ»·½Ã棬¶ÔÓÚÏûÏ¢µÄ·¢ËÍÕßÀ´Ëµ£¬Í¨³£ÒªÔÚÒ»¶¨³Ì¶ÈÉϸÐÖªµ½¼¯ÈºµÄ´æÔÚ¡£Â·ÓÉÆ÷Actor£¨Router Actor£©¸ºÔð½«ÏûÏ¢·¢Ë͵½ÆäËûActorµÄÎïÁ÷ÊÂÒË£¬½ÓÊÕÏûÏ¢µÄActor¿ÉÄÜ»áÒÔ·Ö²¼Ê½µÄ·½Ê½´æÔÚÓÚ¼¯ÈºÖ®ÖС£Â·ÓÉÆ÷Actor½ÓÊÕµ½ÏûÏ¢£¬µ«ÊÇËü×Ô¼º²¢²»»á´¦ÀíÏûÏ¢¡£Ëü½«ÏûϢת·¢¸øÒ»¸ö¹¤×÷ÕßActor¡£ÕâЩ¹¤×÷ÕßActorͨ³£±»³ÆÎª±»Â·ÓÉÕߣ¨routee£©¡£Â·ÓÉÆ÷Actor¸ºÔð°´ÕÕÒ»¶¨µÄ·ÓÉËã·¨½«ÏûϢת·¢¸øÆäËûµÄ±»Â·ÓÉÕßActor¡£Êµ¼ÊµÄ·ÓÉËã·¨ÒòÇé¿ö¶øÒ죬ËüÒªÒÀÀµÓÚÿ¸ö·ÓÉÆ÷µÄÐèÇó¡£Â·ÓÉËã·¨µÄÀý×Ó°üÀ¨ÂÖѯ£¨round robin£©¡¢Ëæ»ú»ò×îСÊÕ¼þÏäµÈµÈ¡£

¿¼ÂÇÏÂͼËùʾµÄÑùÀý³¡¾°£¨Òª¼Çס·¢ËÍÏûÏ¢µÄ¿Í»§¶Ë²¢²»ÖªµÀ½ÓÊÕÏûÏ¢µÄActor»áÈçºÎ´¦ÀíÏûÏ¢£©¡£¶ÔÓÚ¿Í»§¶ËÀ´Ëµ£¬½ÓÊÕÏûÏ¢µÄActor¾ÍÊÇÒ»¸öºÚºÐ¡£½ÓÊÕÏûÏ¢Actor¿ÉÄܻὫ¹¤×÷ίÍиøÆäËûµÄ¹¤×÷ÕßActorÀ´Íê³É¡£ÔÚÕâÖÖÇé¿öÏ£¬½ÓÊÕÏûÏ¢µÄActor¾ÍÊÇÒ»¸ö·ÓÉÆ÷¡£Ëü½«½ÓÊÕµ½µÄÏûϢ·Óɸø´úÀíActor£¬ÈÃËüÃÇÀ´Íê³Éʵ¼ÊµÄ¹¤×÷¡£

ÔÚÕâ¸öÑùÀý³¡¾°ÖУ¬Â·ÓÉÆ÷Actor¿ÉÄÜÐèÒª¸ÐÖª¼¯ÈºµÄ´æÔÚ£¬Ëü»á½«ÏûϢ·Óɵ½¼¯ÈºÖзֲ¼Ê½½ÚµãµÄActorÉÏ¡£ÄÇô£¬¼¯Èº¸ÐÖªÒâζ×ÅÊ²Ã´ÄØ£¿

¼¯Èº¸ÐÖªActor»áÓõ½µ±Ç°¼¯Èº×´Ì¬µÄ×é³ÉÐÅÏ¢£¬ÒÔ±ãÓÚ¾ö¶¨ÈçºÎ½«´«ÈëµÄÏûϢ·Óɵ½¼¯ÈºÖзֲ¼Ê½µÄÆäËûActorÉÏ¡£¼¯Èº¸ÐÖªActor×î³£¼ûµÄ³¡¾°Ö®Ò»¾ÍÊÇ·ÓÉÆ÷¡£¼¯Èº¸Ð֪·ÓÉÆ÷»á»ùÓÚµ±Ç°¼¯ÈºµÄ״̬¾ö¶¨ÈçºÎ½«ÏûϢ·ÓÉÖÁÄ¿±êActor¡£ÀýÈ磬·ÓÉÆ÷ÖªµÀ·Ö²¼Ê½¼¯ÈºÖб»Â·ÓɵÄActorµÄλÖã¬È»ºó°´ÕÕ·Ö²¼Ê½¹¤×÷µÄËã·¨½«ÏûÏ¢·¢ËÍÖÁÄ¿±êActor¡£

ActorÄ£ÐÍÈçºÎÖ§³Ö·´Ó¦Ê½ÏµÍ³

ÕýÈ練ӦʽÐûÑÔ£¨Reactive Manifesto£©Ëù¶¨ÒåµÄÄÇÑù£¬¡°·´Ó¦Ê½ÊǼ´Ê±ÏìÓ¦ÐԵģ¨responsive£©£¬·´Ó¦Ê½ÊǾßÓе¯ÐԵģ¨resilient£©£¬·´Ó¦Ê½ÊǾßÓÐÊÊÓ¦ÐԵģ¨elastic£©£¬·´Ó¦Ê½ÊÇÏûÏ¢Çý¶¯µÄ¡±¡£±¾ÖÊÉÏÀ´½²£¬ÏûÏ¢Çý¶¯×é¼þ´Ù½øÁË·´Ó¦Ê½µÄÆäËûÈýÏîÌØµãµÄʵÏÖ¡£

Ìá¸ßϵͳµÄÏìÓ¦ÐÔ

·´Ó¦Ê½ÊǼ´Ê±ÏìÓ¦µÄ£¬Ò²¾ÍÊÇϵͳÄܹ»¶¯Ì¬ÊÊÓ¦²»¶Ï±ä»¯µÄÓû§ÐèÇó¡£¶ÔÓÚÒ»¸ö·´Ó¦Ê½ÏµÍ³À´Ëµ£¬ÒÔÇëÇó/ÏìÓ¦µÄ·½Ê½»ØÓ¦Óû§µÄÐèÇó²¢²»ÉÙ¼û¡£Èç¹û½èÖúActorÄ£ÐÍÀ´Ö§³Ö·´Ó¦Ê½±à³Ì£¬¿ª·¢ÈËÔ±Äܹ»ÊµÏַdz£¸ßµÄÍÌÍÂÁ¿¡£

Ö§³ÖϵͳµÄµ¯ÐÔ

½èÖúÏûÏ¢´«µÝºÍÏûÏ¢Çý¶¯¼Ü¹¹ÌṩµÄ¹¦ÄÜ£¬ÎÒÃÇÒ²ÄÜÖ§³Öµ¯ÐÔ¡£µ±¿Í»§¶ËActor·¢ËÍÒ»ÌõÏûÏ¢¸ø·þÎñÆ÷Actor½ÓÊÕÕßʱ£¬¿Í»§¶Ë²»±Ø´¦Àí·þÎñÆ÷¶ÔÏó»òActor¿ÉÄÜÅ׳öµÄÒì³£¡£

Ç뿼ÂÇһϵäÐ͵ÄÃæÏò¶ÔÏó¼Ü¹¹£¬ÔÚÕâÖּܹ¹ÖУ¬¿Í»§¶Ë·¢ËÍÒ»ÌõÏûÏ¢»òÕßµ÷ÓýÓÊÕÕßµÄÒ»¸ö·½·¨£¬ÎÒÃÇÐèҪǿÆÈ¿Í»§¶Ë´¦Àí¿ÉÄÜ»á³öÏֵĸ÷ÖÖ±ÀÀ£»òÅ׳öµÄÒì³£¡£×÷Ϊ»ØÓ¦£¬¿Í»§¶ËÒ»°ã»áÖØÐÂÅ׳ö»òÕß½«Òì³£´«µÝ¸ø¸ü¸ß²ãµÄ×é¼þ£¬Ï£ÍûÆäËûÈË´¦ÀíËü¡£µ«ÊÇ£¬¿Í»§¶Ë²¢²»ÊʺÏÐÞ¸´·þÎñ¶ËµÄ±ÀÀ£¡£

ÔÚActorÄ£ÐÍÖУ¬ÓÈÆäÊÇÔÚʹÓÃAkkaʱ£¬»á½¨Á¢Ò»¸öÓÃÓÚ¼à¹ÜµÄ²ã¼¶½á¹¹¡£µ±½ÓÊÕ´«ÈëÏûÏ¢µÄ¹ý³ÌÖгöÏÖ·þÎñÆ÷±ÀÀ£»òÕßÅ׳öÒ쳣ʱ£¬²»Êǿͻ§¶ËÀ´´¦Àí±ÀÀ££¬¶øÊÇÓÉ·þÎñÆ÷ActorµÄ¸¸Actor»òÕ߸ºÔð·þÎñÆ÷ActorµÄ¶ÔÏóÀ´½øÐд¦Àí¡£

¸¸ActorÄܹ»¸üºÃµØÀí½â×ÓActor¿ÉÄÜ»á³öÏֵıÀÀ££¬Òò´ËÄܹ»¶ÔÆä×÷³ö·´Ó¦²¢ÖØÆô¸ÃActor¡£¿Í»§¶ËÖ»ÐèÒªÖªµÀ½ÓÊÕµ½ÇëÇóµÄÏìÓ¦»òÕßûÓнÓÊÕµ½ÏìӦʱ·Ö±ð¸ÃÈçºÎ´¦Àí¾Í¿ÉÒÔÁË¡£Èç¹ûÔÚÒ»¸ö¿É½ÓÊܵÄʱ¼ä·¶Î§ÄÚ£¬ËüûÓнÓÊÕµ½ÏìÓ¦£¬ÄÇôËü¿ÉÒÔÏòͬһ¸öActor·¢ËÍÏàͬµÄÇëÇó£¬Ï£ÍûµÃµ½Ôٴδ¦Àí¡£ËùÒÔ£¨Èç¹ûÕýÈ·¹¹½¨µÄ»°£©ActorϵͳÊǷdz£Óе¯ÐԵġ£

ÈçÏÂÊÇÒ»¸öÑùÀý£¬Êµ¼ÊÕ¹ÏÖÁËActorµÄ¼à¹Ü¡£ÔÚͼ7ÖУ¬Actor RÊÇÒ»¸ö¼à¹ÜÕߣ¬Ëü´´½¨ÁËËĸö¹¤×÷ÕßActor¡£Actors AºÍB»á·¢ËÍÏûÏ¢¸øActor R£¬ÇëÇóËüÖ´ÐÐһЩ²Ù×÷¡£Actor R½«¹¤×÷ίÍиøÄ³Ò»¸ö¿ÉÓõŤ×÷ÕßActor¡£

ͼ7¡ª¡ªActor AµÄÏûÏ¢»á±»RίÍиø¹¤×÷ÕßActor

ÔÚÕâ¸öÑùÀýÖУ¬¹¤×÷ÕßActorÓöµ½ÁËÎÊÌâ²¢Å׳öÁËÒì³££¬Èçͼ8Ëùʾ¡£Òì³£»á±»¼à¹ÜÕßActor RÀ´´¦Àí¡£¼à¹ÜÕßActor»á×ñÑ­Ò»¸ö¶¨ÒåÁ¼ºÃµÄ¼à¹Ü²ßÂÔ£¬ÒÔ±ãÓÚ´¦Àí¹¤×÷ÕߵĴíÎó¡£¼à¹ÜÕß¿ÉÒÔÑ¡Ôñ»Ö¸´³öÏÖ¼òµ¥ÎÊÌâµÄActor»òÕßÖØÆô¸Ã¹¤×÷Õߣ¬Ò²¿ÉÄܻὫÆäÍ£Ö¹µô£¬ÕâÒÀÀµÓÚÎÊÌâµÄÑÏÖØ³Ì¶ÈºÍ»Ö¸´²ßÂÔ¡£

ͼ8¡ª¡ª¹¤×÷ÕßActorÅ׳öÁËÒì³£

¾¡¹ÜÒì³£»áÓɼà¹ÜÕß´¦Àí£¬µ«ÊÇActor A»¹ÔÚÆÚ´ýÊÕµ½ÏìÓ¦ÐÅÏ¢¡£×¢Ò⣬Actor AÖ»ÊÇÆÚ´ý»áÓÐÏìÓ¦ÏûÏ¢£¬¶ø²»ÊÇÒ»Ö±Ôڵȴý¸ÃÏûÏ¢¡£

ÕâÖÖÒì²½ÏûÏ¢µÄ½»»¥ÒýÈëÁËһЩºÜÓÐÒâ˼µÄ¶¯Ì¬ÐÔ¡£Actor AÏ£ÍûActor RÄܹ»ÏñÔ¤ÆÚµÄÄÇÑù£¬¶ÔËüµÄÏûÏ¢×ö³ö·´Ó¦¡£µ«ÊÇ£¬ÎÞ·¨±£Ö¤Actor AµÄÏûÏ¢»áµÃµ½´¦Àí»òÕßÄܹ»·µ»ØÏìÓ¦ÐÅÏ¢¡£Õâ¸ö¹ý³ÌÖз¢ÉúµÄÈκÎÎÊÌâ¶¼ÓпÉÄÜÆÆ»µÇëÇóºÍÏìÓ¦µÄÖÜÆÚ¡£ÀýÈ磬¿¼ÂÇÕâÑùÒ»ÖÖÇé¿ö£¬Actor AºÍActor RÔËÐÐÔÚ²»Í¬µÄ½ÚµãÉÏ£¬Actor AºÍActor RÖ®¼äµÄÏûÏ¢·¢ËÍÒª´©¹ýÒ»¸öÍøÂçÁ¬½Ó¡£ÍøÂç¿ÉÄܻᱻ¹Ø±Õ£¬»òÕßÔËÐÐActor RµÄ½Úµã¿ÉÄÜ»á³öÏÖ¹ÊÕÏ¡£ÁíÍ⣬»¹ÓпÉÄÜÒªÖ´ÐеÄÈÎÎñʧ°ÜÁË£¬±ÈÈçÔÚÊý¾Ý¿â²Ù×÷ʱ£¬ÒòÎªÍøÂç¹ÊÕÏ»ò·þÎñÆ÷Í£»úÔì³ÉÁ˲Ù×÷ʧ°Ü¡£

¼øÓÚÕâÀïȱ·¦Èκα£Ö¤£¬ÔÚʵÏÖActor Aʱ£¬ÓÐÖÖ³£¼ûµÄ·½Ê½¾ÍÊÇËüÔ¤ÆÚ»áµÃµ½Á½ÖÖ¿ÉÄܵĽá¹û¡£µÚÒ»ÖÖ½á¹ûÊǵ±Ëü·¢ËÍÏûÏ¢¸øActor Rºó£¬Ëü×îÖÕ½ÓÊÕµ½ÁËÒ»ÌõÏìÓ¦ÏûÏ¢¡£»¹ÓÐÒ»ÖÖ¿ÉÄܵĽá¹û¾ÍÊÇActor A»áÔ¤ÆÚµÃµ½Ò»ÌõÌæ´úÏûÏ¢£¬ÕâÌõÏûÏ¢±íÃ÷ûÓнÓÊÕµ½Ô¤ÆÚµÄÏìÓ¦¡£Èç¹û°´ÕÕÕâÖÖ·½Ê½µÄ»°£¬Actor A»áÉæ¼°µ½·¢ËÍÁ½ÌõÏûÏ¢£ºµÚÒ»ÌõÊÇ·¢Ë͸øActor RµÄÏûÏ¢£¬µÚ¶þÌõÊÇÔÚδÀ´Ìض¨µÄʱ¼äµã·¢Ë͸ø×Ô¼ºµÄÏûÏ¢¡£

ͼ9¡ª¡ªActor A½ÓÊÕÒ»Ìõ³¬Ê±µÄÏûÏ¢

ÔÚÕâÀïËùʹÓõĻù±¾²ßÂÔ¾ÍÊÇͬʱ´æÔÚA¼Æ»®ºÍB¼Æ»®¡£A¼Æ»®Ö¸µÄÊÇËùÓеÄÊÂÇé¶¼ÄÜÕý³£ÔËÐС£Actor A·¢ËÍÒ»ÌõÏûÏ¢¸øActor R£¬Ô¤ÆÚµÄÈÎÎñµÃµ½Ö´Ðв¢ÇÒÏìÓ¦ÏûÏ¢Äܹ»·µ»Ø¸øActor A¡£B¼Æ»®Äܹ»Ó¦¶ÔActor RÎÞ·¨´¦ÀíÇëÇóÏûÏ¢µÄ³¡¾°¡£

À©Õ¹ÏµÍ³µÄÊÊÓ¦ÐÔ

·´Ó¦Ê½ÏµÍ³ÐèÒª¾ßÓÐÊÊÓ¦ÐÔ£¬ËüÃÇ¿ÉÒÔ¸ù¾ÝÐèÒªÀ©Õ¹ºÍÊÕËõ¡£ÕæÕýµÄ·´Ó¦Ê½Éè¼ÆÃ»ÓоºÕùµã»òÖÐÐÄ»¯µÄÆ¿¾±£¬ËùÒÔÎÒÃÇ¿ÉÒÔ¹²Ïí»ò¸´ÖÆ×é¼þ£¬²¢ÔÚËüÃÇÖ®¼ä·ÖÅäÊäÈë¡£ËüÃÇͨ¹ýÌṩÏà¹ØµÄʵʱÐÔÄܶÈÁ¿Êý¾Ý£¬ÊµÏÖÔ¤²âºÍ·´Ó¦Ê½ÉìËõËã·¨¡£

ActorÄ£ÐͶÔÊÊÓ¦ÐÔµÄÖ§³ÖÊÇͨ¹ý¶¯Ì¬ÏìÓ¦Óû§»î¶¯µÄ¸ß·åºÍµÍ¹ÈÀ´ÊµÏֵģ¬ÔÚÓÐÐèÒªµÄʱºò£¬Ëü»áÖÇÄܵØÌáÉýÐÔÄÜ£¬²¢ÔÚʹÓÃÂʽϵ͵Äʱºò½ÚÊ¡ÄÜÔ´¡£ÏûÏ¢Çý¶¯µÄÌØÐÔÄܹ»´øÀ´¸ü´ó³Ì¶ÈµÄÊÊÓ¦ÐÔ¡£

ÊÊÓ¦ÐÔÐèÒªÁ½¸ö¹Ø¼üÒªËØ¡£µÚÒ»¸ö¾ÍÊǵ±¸ºÔØÔö¼Ó»ò½µµÍʱ£¬Äܹ»ÓÐÒ»ÖÖ»úÖÆÀ©Õ¹ºÍÊÕËõ´¦ÀíÄÜÁ¦¡£µÚ¶þ¸ö¾ÍÊÇÒªÓÐÒ»ÖÖ»úÖÆÔÊÐíÔÚ´¦ÀíÄÜÁ¦·¢Éú±ä»¯µÄʱºò£¬ÏµÍ³¶ÔÆä×÷³öÊʵ±µÄ·´Ó¦¡£

Óкܶ෽ʽÀ´Ó¦¶Ô´¦ÀíÄÜÁ¦µÄÀ©Õ¹ºÍÊÕËõ¡£Í¨³£À´½²£¬´¦ÀíÄÜÁ¦µÄ±ä»¯¿ÉÒÔÊÖ¶¯»ò×Ô¶¯½øÐС£ÊÖ¶¯´¦ÀíµÄÑùÀý³¡¾°¾ÍÊÇΪÁË×¼±¸¿Í»§¼¾½ÚÐÔµÄÁ÷Á¿¸ß·å£¬ÌáǰÔö¼Ó´¦ÀíÄÜÁ¦¡£µäÐ͵ÄÀý×Ó¾ÍÊǺÚÉ«ÐÇÆÚÎ壨Black Friday£©ºÍ¶çÊÖÐÇÆÚÒ»£¨Cyber Monday£©»òÕß¹â¹÷½Ú¡£×Ô¶¯À©Õ¹ÊǺܶàÔÆ³§ÉÌËùÌṩµÄºÜÓÐÓõÄÌØÐÔ£¬±ÈÈçAmazon AWS¡£

ActorÄ£ÐÍÒÔ¼°¸ÃÄ£Ð͵ÄʵÏÖAkka²¢Ã»ÓÐÌṩ´¥·¢´¦ÀíÄÜÁ¦µ÷ÕûµÄ»úÖÆ£¬µ«ËüÊÇÒ»¸öÀíÏëµÄƽ̨£¬Äܹ»½èÖúËüÀ´¹¹½¨µ±¼¯ÈºÍØÆË½á¹¹·¢Éú±ä»¯Ê±£¬×ö³öÊʵ±·´Ó¦µÄϵͳ¡£ÕýÈçǰÎÄËùÊö£¬ÔÚActor¼¶±ð£¬¿ÉÒÔʵÏÖ¼¯Èº¸ÐÖªµÄActor£¬ËüÃÇרÃÅÉè¼ÆÓÃÀ´Ó¦¶Ô½ÚµãÀ뿪»ò¼ÓÈ뼯ȺµÄ³¡¾°¡£Ôںܶೡ¾°Ï£¬µ±ÎÒÃÇÉè¼ÆºÍʵÏÖActorϵͳʹÆä¸üÓе¯ÐÔµÄʱºò£¬ÆäʵÎÒÃÇҲΪÊÊÓ¦ÐÔ´òÏÂÁËÁ¼ºÃµÄ»ù´¡¡£µ±ÄãµÄϵͳÄܹ»´¦Àí·Ö²¼Ê½½ÚµãÒòΪ¹ÊÕ϶øÀ뿪¼¯Èº£¬²¢ÇÒÖ§³ÖнڵãÈ¡´ú¹ÊÕϽڵãµÄʱºò£¬ÆäʵÔÚ±¾ÖÊÉÏÀ´Ëµ½ÚµãÒòΪ¹ÊÕÏÀ뿪»ò¼ÓÈ뼯Ⱥ£¬ÕâÓëΪÁËÓ¦¶ÔÓû§µÄ»î¶¯¶øµ÷Õû¿ÉÓõĴ¦ÀíÄÜÁ¦²¢Ã»ÓÐʲô²îÒì¡£

ÏûÏ¢ÖÁ¹ØÖØÒª

ÕýÈçÎÒÇ°Ãæ½²µ½µÄ£¬ActorÄ£ÐÍÖ÷Òª¹Ø×¢Ö±½ÓµÄÒì²½ÏûÏ¢¡£ÎªÁËʵÏÖÕâÒ»µã£¬·¢ËÍÕßÓбØÒªÖªµÀ½ÓÊÕÕߵĵØÖ·£¬ÕâÑù²ÅÄܽ«ÏûÏ¢·¢Ë͸ø½ÓÊÕÕß¡£

ActorÊÇÎÞËøµÄ½á¹¹£¬ËüÃDz»»á¹²ÏíÈκÎÄÚÈÝ¡£Èç¹ûÈý¸ö·¢ËÍÕß·Ö±ðÏòÒ»¸ö½ÓÊÕÕß·¢ËÍÏûÏ¢£¬½ÓÊÕÕß»áÔÚËüµÄÊÕ¼þÏäÖжÔÕâЩÏûÏ¢½øÐÐÅŶӣ¬Ã¿´ÎÖ»´¦ÀíÒ»ÌõÏûÏ¢¡£Òò´Ë£¬½ÓÊÕÕß²»ÐèÒªÔÚÄÚ²¿Ê¹ÓÃËøÀ´±£»¤ËüµÄ״̬£¬ÒÔ·ÀÖ¹¶àÏ̶߳Ô״̬µÄͬʱ²Ù×÷¡£½ÓÊÕÕß²»»á½«ËüµÄÄÚ²¿×´Ì¬ÓëÆäËûµÄActor¹²Ïí¡£

ActorÄ£ÐÍ»¹ÔÊÐí½ÓÊÕÏûÏ¢µÄActorΪÏÂÒ»Ìõ¼´½«µ½´ïµÄÏûÏ¢×ö³öµ÷Õû¡£ÀýÈ磬¼ÙÉèÓÐÁ½¸ö³ÌÐòÁ÷ÐòÁС£µ±µÚÒ»¸öÐòÁеķ¢ËÍÕß·¢ËÍÒ»ÌõÏûÏ¢¸ø½ÓÊÕÕßʱ£¬½ÓÊÕÕß¶ÔÏûÏ¢×ö³ö·´Ó¦£¬È»ºó½«Æä×ÔÉíת»»ÎªÁíÍâÒ»ÖÖÀàÐ͵ÄÏûÏ¢¼àÌýÕß¡£ÏÖÔÚ£¬µ±µÚ¶þ¸öÐòÁÐÖеÄÏûÏ¢·¢ËÍÕß·¢ËÍÏûÏ¢¸øÍ¬Ò»¸öActorʱ£¬¸ÃActor»áÔÚ×Ô¼ºµÄreceive´úÂë¿éÖÐʹÓò»Í¬µÄÒ»×éÂß¼­£¨µ±Actor¸Ä±ä״̬ʱ£¬Ëü¿ÉÒÔÌæ»»ÏûÏ¢µÄ½ÓÊÕÂß¼­¡£ÔÚAkkaÎĵµÖУ¬ÓÐÒ»¸öÕâÖÖÀàÐ͵ÄÑùÀý¡£

ÓøüÉÙµÄ×ÊÔ´×ö¸ü¶àµÄÊÂÇé

ActorÄ£ÐͰïÖúÎÒÃǽâ¾öµÄÁíÍâÒ»¸öÖ÷ÒªÎÊÌâ¾ÍÊÇÓøüÉÙµÄ×ÊÔ´×ö¸ü¶àµÄÊÂÇé¡£¸÷ÖÖ¹æÄ£µÄϵͳ¶¼ÄÜ´ÓÖÐÊÜÒæ£¬´ÓAmazonºÍNetflixËùʹÓõĴóÐÍÍøÂçµ½¸üСµÄ¼Ü¹¹¾ùÊÇÈç´Ë¡£ActorÄ£ÐÍÔÊÐí¿ª·¢ÈËÔ±³ä·Ö·¢»Óÿ̨·þÎñÆ÷µÄ×î´óÄÜÁ¿£¬Òò´ËºÜÓпÉÄܽµµÍ¼¯ÈºµÄ¹æÄ£¡£

»ùÓÚActorµÄ·þÎñ¿ÉÒÔÓжàÉÙ¸öActorÄØ£¿ÎåÊ®¸ö£¿Ò»°Ù¸ö£¿¶¼¿ÉÒÔ£¡»ùÓÚActorµÄϵͳ·Ç³£Áé»îÇÒ¾ßÓÐÊÊÓ¦ÐÔ£¬ËüÃÇ¿ÉÒÔÖ§³Ö´óÁ¿µÄActor£¬ÉõÖÁÄܵ½°ÙÍò¼¶±ð¡£

ÔÚµäÐ͵ÄN²ã¼Ü¹¹ÖУ¬Ò²¿ÉÒÔ³ÆÎª¡°¶Ë¿ÚÓëÊÊÅäÆ÷£¨ports-and-adapters£©¡±»òÁù±ßÐμܹ¹£¬´æÔÚ´óÁ¿²»±ØÒªµÄ¸´ÔÓÐÔ£¬ÉõÖÁ»áÓÐż·¢µÄ¸´ÔÓÐÔ¡£ActorÄ£ÐÍ×î´óµÄÓÅÊÆÖ®Ò»¾ÍÊÇËüÄܹ»Ïû³ýºÜ¶àµÄ¸´ÔÓÐÔ£¬Ëü»á½«Ò»×é¡°¿ØÖÆÆ÷¡±ÊÊÅäÆ÷ÖÃÓڱ߽çÖ®ÉÏ¡£¿ØÖÆÆ÷¿ÉÒÔ·¢ËÍÏûÏ¢¸øÁìÓòÄ£ÐÍ£¬´Ó¶øÈÎÎñίÍгöÈ¥£¬ÁìÓòÄ£Ðͽø¶ø·¢²¼Ê¼þ¡£Í¨¹ýÕâÖÖ·½Ê½£¬ActorÄ£ÐÍÄܹ»Ôںܴó³Ì¶ÈÉϽµµÍÍøÂ縴ÔÓÐÔ£¬ÔÊÐíÉè¼ÆÕßÓÃÓÐÏÞµÄ×ÊÔ´ºÍÔ¤ËãÍê³É¸ü¶àµÄÊÂÇé¡£

ʹÓÃÁìÓòÇý¶¯Éè¼Æ¼ÓËÙÒµÎñ¿ª·¢

ÁìÓòÇý¶¯Éè¼Æ£¨DDD£©µÄ±¾ÖÊÊÇÔڱ߽çÉÏÏÂÎÄ£¨bounded context£©½¨Ä£Ò»¸öͨÓã¨ubiquitous£©ÓïÑÔ¡£ÈÃÎÒÉÔ×÷½âÊÍ£º¿¼Âǽ«Ä³¸öÌØ¶¨ÀàÐ͵ķþÎñ½¨Ä£Îª±ß½çÉÏÏÂÎÄ¡£Õâ¸ö±ß½çÉÏÏÂÎÄÊÇÒ»¸öÓïÒå±ß½ç£¬¸Ã±ß½çÄÚµÄËùÓеÄÄÚÈÝ(°üÀ¨ÁìÓòÄ£ÐÍ)¶¼ÓÐÃ÷È·µÄ¶¨Ò壬ÆäÖл¹°üÀ¨Ò»¸öÍŶӳÉÔ±ËùʹÓõÄÓïÑÔ£¬¸ÃÓïÑÔÄܹ»°ïÖú¿ª·¢ÈËÔ±Àí½â±ß½çÉÏÏÂÎÄÖÐÿ¸ö¸ÅÄîµÄº¬Òå¡£

½ÓÏÂÀ´¾ÍÊÇÉÏÏÂÎÄÓ³É䣨context-mapping£©Äܹ»·¢»Ó×÷Óõĵط½ÁË£¬ÉÏÏÂÎÄÓ³Éä»áΪÿ¸ö±ß½çÉÏÏÂÎÄÈçºÎÓëÆäËûµÄÉÏÏÂÎĶÔÓ¦¡¢ÍŶӹØÏµÒÔ¼°Ä£ÐÍÈçºÎ½»»¥Ó뼯³ÉµÈÐÐΪ½¨Ä£¡£Ê¹ÓÃÉÏÏÂÎÄÓ³ÉäÊǷdz£ÖØÒªµÄ£¬ÒòΪ±ß½çÉÏÏÂÎı¾ÉíÒª±ÈºÜ¶àÈËÔÚµ¥Ìå¼Ü¹¹ÖÐËùϰ¹ßµÄ˼άģʽСµÃ¶à¡£

¶ÔÓÚÈÎºÎÆóÒµºÍ¿ª·¢ÍŶÓÀ´Ëµ£¬ÏìÓ¦¿ìËٱ仯µÄÐÂÒµÎñ·½Ïò¶¼ÊǺܴóµÄÌôÕ½¡£ÔÚ´¦ÀíÕâЩ²»¶ÏÑÝ»¯µÄÒµÎñ·½Ïòʱ£¬DDD¿ÉÒÔ½øÐбØÒªµÄ֪ʶÏû»¯£¨knowledge crunching£©¡£ActorºÍÏûÏ¢Äܹ»°ïÖú¿ª·¢ÈËÔ±¿ìËÙʵÏÖÁìÓòÄ£ÐÍÒÔÓ¦¶ÔËûÃǵÄÐèÇ󣬲¢ÇÒÓÐÖúÓÚ¶ÔÁìÓòÄ£ÐÍÐγÉÇåÎúµÄÀí½â¡£

ActorºÍDDD£ºÍêÃÀ×éºÏ

Alan Kay˵¹ý£¬¡°ActorÄ£Ðͱ£ÁôÁ˶ÔÏóÀíÄî¸ü¶àµÄºÃÌØÐÔ¡±¡£Kay»¹Ëµ¹ý£¬¡°×î´óµÄÀíÄîÊÇÏûÏ¢¡±¡£ÔÚ´´½¨Í¨ÓÃÓïÑԵĹý³ÌÖУ¬¿ª·¢ÈËÔ±¿ÉÒÔ¹Ø×¢Actor£¨½«Æä×÷Ϊ¶ÔÏó»ò×é¼þ£©¡¢ÁìÓòÄ£Ð͵ÄÔªËØÒÔ¼°ËüÃÇÖ®¼äµÄÏûÏ¢¡£

µ¥¸ö·´Ó¦Ê½·þÎñÎÞ·¨¹¹³ÉÍêÕûµÄ·þÎñ£¬·´Ó¦Ê½·þÎñÊÇÀ´Ô´ÓÚϵͳµÄ¡£Òò´Ë¿ª·¢ÈËÔ±×îÖÕÒªÊÔͼÍê³ÉµÄÊǹ¹½¨Õû¸öϵͳ£¬¶ø²»Êǵ¥¸ö·þÎñ¡£Í¨¹ý´¥·¢ÁìÓòʼþµ½ÆäËûµÄ±ß½çÉÏÏÂÎÄ»ò΢·þÎñ£¬¿ª·¢ÈËÔ±¿ÉÒÔ¸üÈÝÒ×µØÊµÏÖÕâÒ»µã¡£

ΪºÎActor¶ÔÒµÎñ¸ü¼ÓÓÐÒæ£¿

Actor¿ÉÒÔºÍDDD·Ç³£ÀíÏëµØÐ­×÷£¬ÒòΪËüÃǶ¼Ê¹ÓÃͨÓÃÓïÑÔÀ´±íÊöºËÐÄÒµÎñÁìÓò¡£ËüÃǵÄÉè¼Æ¶¼·Ç³£ÓÅÑÅ£¬Äܹ»´¦ÀíÒµÎñ¹ÊÕÏ£¬²»¹ÜÍøÂç³öÏÖÁ˺ÎÖÖÎÊÌâ¶¼ÄÜά»¤ÏµÍ³µÄµ¯ÐԺͿìËÙÏìÓ¦¡£ËüÃǰïÖú¿ª·¢ÈËÔ±À©Õ¹ÏµÍ³ÒÔÂú×ã²¢·¢µÄÐèÇ󣬵±ÃæÁÙ·åÖµ¸ºÔØÊ±£¬½øÐÐÊÊÓ¦ÐÔµØÀ©Õ¹£¬²¢ÔÚÁ÷Á¿½µµÍµÄʱºò£¬½øÐÐÊÕËõ£¬´Ó¶ø×îС»¯»ù´¡ÉèʩռÓúÍÓ²¼þÐèÇó¡£ÕâÖÖÄ£Ðͷdz£Êʺϵ±½ñ¸ß¶È·Ö²¼Ê½¡¢¶àÏ̵߳Ļ·¾³£¬²¢ÇÒÄܹ»²úÉúÔ¶Ô¶³¬³ö·þÎñÆ÷ÄÜÁ¦¿Õ¼äµÄÒµÎñÊÕÒæ¡£

   
3231 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
 
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ