Ëæ×Å»¥ÁªÍø¼¼ÊõµÄ¸ßËÙ·¢Õ¹£¬¸÷ÖÖ´´Ð¼¼Êõ¡¢Ç°ÑظÅÄîÈçÓêºó´ºËñ°ã²ã³ö²»Çî£¬ÔÆ·þÎñ¡¢ÔƼÆËã¡¢´óÊý¾Ý´¦Àí¡¢´óÊý¾Ý·ÖÎö¡¡£¬ÒÔÍùµ¥Ó¦ÓõķþÎñ¼Ü¹¹ÒѾºÜÄÑ´¦ÀíÈçɽºé°ãÔö³¤µÄÐÅÏ¢Êý¾Ý£¬Ëæ×Å·Ö²¼Ê½µÄÆÕ¼°¡¢·þÎñµÄ¿ìËÙÔö³¤ÓëÔÆ¼ÆËã¼¼ÊõµÄ½ø²½£¬Î¢·þÎñ¼Ü¹¹Öð½¥½øÈëÈËÃǵÄʵÏÖ£¬ËüÒ²ÒòÆäÌØÓеÄÓÅÊÆ¶ø±¸ÊܹØ×¢¡£
΢·þÎñ¼Ü¹¹µÄ±¾ÖÊ£¬ÊǰÑÕûÌåµÄÒµÎñ²ð·Ö³ÉºÜ¶àÓÐÌØ¶¨Ã÷È·¹¦ÄܵķþÎñ£¬Í¨¹ýºÜ¶à·ÖÉ¢µÄС·þÎñÖ®¼äµÄÅäºÏ£¬È¥½â¾ö¸ü´ó£¬¸ü¸´ÔÓµÄÎÊÌâ¡£¶Ô±»²ð·ÖºóµÄ·þÎñ½øÐзÖÀàºÍ¹ÜÀí£¬±Ë´ËÖ®¼äʹÓÃͳһµÄ½Ó¿ÚÀ´½øÐн»»¥¡£
΢·þÎñµÄÌØµã¾ö¶¨Á˹¦ÄÜÄ£¿éµÄ²¿ÊðÊÇ·Ö²¼Ê½µÄ£¬ÒÔÍùÔÚµ¥Ó¦Óû·¾³Ï£¬ËùÓеÄÒµÎñ¶¼ÔÚͬһ¸ö·þÎñÆ÷ÉÏ£¬Èç¹û·þÎñÆ÷³öÏÖ´íÎóºÍÒì³££¬ÎÒÃÇÖ»Òª¶¢×¡Ò»¸öµã£¬¾Í¿ÉÒÔ¿ìËÙ¶¨Î»ºÍ´¦ÀíÎÊÌ⣬µ«ÊÇÔÚ΢·þÎñµÄ¼Ü¹¹Ï£¬´ó²¿·Ö¹¦ÄÜÄ£¿é¶¼Êǵ¥¶À²¿ÊðÔËÐеģ¬±Ë´Ëͨ¹ý×ÜÏß½»»¥£¬¶¼ÊÇÎÞ״̬µÄ·þÎñ£¬ÕâÖּܹ¹Ï£¬Ç°ºǫ́µÄÒµÎñÁ÷»á¾¹ýºÜ¶à¸ö΢·þÎñµÄ´¦ÀíºÍ´«µÝ£¬ÎÒÃÇÄÑÃâ»áÓöµ½ÕâÑùµÄÎÊÌ⣺
·ÖÉ¢ÔÚ¸÷¸ö·þÎñÆ÷ÉϵÄÈÕÖ¾Ôõô´¦Àí£¿
Èç¹ûÒµÎñÁ÷³öÏÖÁË´íÎóºÍÒì³££¬ÈçºÎ¶¨Î»ÊÇÄĸöµã³öµÄÎÊÌ⣿
ÈçºÎ¿ìËÙ¶¨Î»ÎÊÌ⣿
ÈçºÎ¸ú×ÙÒµÎñÁ÷µÄ´¦Àí˳ÐòºÍ½á¹û£¿
ÎÒÃÇ·¢ÏÖ£¬ÒÔǰÔÚµ¥Ó¦ÓÃϵÄÈÕÖ¾¼à¿ØºÜ¼òµ¥£¬ÔÚ΢·þÎñ¼Ü¹¹ÏÂÈ´³ÉΪÁËÒ»¸ö´óÎÊÌ⣬Èç¹ûÎÞ·¨¸ú×ÙÒµÎñÁ÷£¬ÎÞ·¨¶¨Î»ÎÊÌ⣬ÎÒÃǽ«ºÄ·Ñ´óÁ¿µÄʱ¼äÀ´²éÕҺͶ¨Î»ÎÊÌ⣬ÔÚ¸´ÔÓµÄ΢·þÎñ½»»¥¹ØÏµÖУ¬ÎÒÃǾͻá·Ç³£±»¶¯¡£
¶ÔÓÚÕâ¸öÎÊÌ⣬ҵÄÚÒѾÓÐÁËһЩʵ¼ùºÍ½â¾ö·½°¸£¬ÈÃÎÒÃÇÀ´¿´¿´ÐÐÒµÄÚµÄÁìÏÈÉè¼ÆË¼Ïë¡£
Google Dapper
Google¹«Ë¾¹ã·ºÊ¹ÓÃÁË·Ö²¼Ê½¼¯Èº£¬ÎªÁËÓ¦¶Ô×ÔÉí´ó¹æÄ£µÄ¸´ÔÓ¼¯Èº»·¾³£¬Google¹«Ë¾Ñз¢ÁËDapper·Ö²¼Ê½¸ú×Ùϵͳ£¬²¢·¢±íÁËÂÛÎÄ¡¶Dapper,
a Large-Scale Distributed Systems Tracing Infrastructure¡·£¬¸øÐÐÒµÄÚ·Ö²¼Ê½¸ú×ÙµÄʵÏÖÌṩÁ˷dz£ÓмÛÖµµÄ²Î¿¼£¬¸ÃÂÛÎÄÒ²³ÉΪÁ˵±Ç°·Ö²¼Ê½¸ú×ÙϵͳµÄÀíÂÛ»ù´¡¡£
ÎÒÃÇÏÈÀ´¿´¸öÀý×Ó£º

ͼ1 Õâ¸ö·¾¶ÓÉÓû§µÄXÇëÇó·¢Æð£¬´©¹ýÒ»¸ö¼òµ¥µÄ·þÎñϵͳ¡£ÓÃ×Öĸ±êʶµÄ½Úµã´ú±í·Ö²¼Ê½ÏµÍ³ÖеIJ»Í¬´¦Àí¹ý³Ì¡£
·Ö²¼Ê½·þÎñµÄ¸ú×ÙϵͳÐèÒª¼Ç¼ÔÚÒ»´ÎÌØ¶¨µÄÇëÇóÖÐϵͳÖÐÍê³ÉµÄËùÓй¤×÷µÄÐÅÏ¢¡£¾Ù¸öÀý×Ó£¬ÉÏͼչÏÖµÄÊÇÒ»¸öÓë5̨·þÎñÆ÷Ïà¹ØµÄÒ»¸ö·þÎñ£¬°üÀ¨£ºÇ°¶Ë£¨A£©£¬Á½¸öÖмä²ã£¨BºÍC£©£¬ÒÔ¼°Á½¸öºó¶Ë£¨DºÍE£©¡£µ±Ò»¸öÓû§£¨Õâ¸öÓÃÀýµÄ·¢ÆðÈË£©·¢ÆðÒ»¸öÇëÇóʱ£¬Ê×Ïȵ½´ïǰ¶Ë£¬È»ºó·¢ËÍÁ½¸öRPCµ÷Óõ½·þÎñÆ÷BºÍC¡£B»áÂíÉÏ×ö³ö·´Ó¦£¬µ«ÊÇCÐèÒªºÍºó¶ËµÄDºÍE½»»¥Ö®ºóÔÙ·µ»¹¸øA£¬ÓÉAÀ´ÏìÓ¦×î³õµÄÇëÇó¡£¶ÔÓÚÕâÑùÒ»¸öÇëÇ󣬼òµ¥ÊµÓõķֲ¼Ê½¸ú×ÙµÄʵÏÖ£¬¾ÍÊÇΪ·þÎñÆ÷ÉÏÿһ´Î·¢ËͺͽÓÊÕ¶¯×÷À´ÊÕ¼¯¸ú×Ù±êʶ·û£¨message
identifiers£©ºÍʱ¼ä´Á£¨timestamped events£©¡£
»ùÓÚÕâ¸öÄ£ÐÍ£¬GoogleÔÚ´ËÂÛÎÄÖÐÌá³öÁ˼¸¸öÖØÒªµÄ¸ÅÄ
1¡¢ »ùÓÚ±ê×¢£¨annotation-based£©£¬ÓÖ½ÐÖ²Èëµã»òÂñµã
ÔÚÓ¦ÓóÌÐò»òÖмä¼þÖÐÃ÷È·¶¨ÒåÒ»¸öÈ«¾ÖµÄ±ê×¢£¨annotation£©£¬Ëü¿ÉÒÔÊÇÒ»¸öÌØÊâµÄID£¬Í¨¹ýÕâ¸öIDÁ¬½ÓÿһÌõ¼Ç¼ºÍ·¢ÆðÕßµÄÇëÇ󣬵±È»£¬ÕâÐèÒª´úÂëÖ²È룬ÔÚÉú²ú»·¾³ÖУ¬ÒòΪËùÓеÄÓ¦ÓóÌÐò¶¼Ê¹ÓÃÏàͬµÄÏß³ÌÄ£ÐÍ£¬¿ØÖÆÁ÷ºÍRPCϵͳ£¬¿ÉÒÔ°Ñ´úÂëÖ²ÈëÏÞÖÆÔÚÒ»¸öºÜСµÄͨÓÃ×é¼þ¿âÖУ¬´Ó¶ø´ïµ½¼à²âϵͳӦÓöԿª·¢ÈËÔ±µÄ͸Ã÷¡£DapperÄܹ»ÒÔ¶ÔÓ¦Óÿª·¢Õß½üºõÁãÇÖÈëµÄ³É±¾¶Ô·Ö²¼Ê½¿ØÖÆÂ·¾¶½øÐиú×Ù£¬¼¸ºõÍêÈ«ÒÀÀµÓÚÉÙÁ¿Í¨ÓÃ×é¼þ¿âµÄ¸ÄÔì¡£
µ±Ò»¸öÏß³ÌÔÚ´¦Àí¸ú×Ù¿ØÖÆÂ·¾¶µÄ¹ý³ÌÖУ¬Dapper°ÑÕâ´Î¸ú×ÙµÄÉÏÏÂÎÄÔÚThreadLocalÖнøÐд洢¡£×·×ÙÉÏÏÂÎÄÊÇÒ»¸öС¶øÇÒÈÝÒ׸´ÖƵÄÈÝÆ÷£¬ÆäÖгÐÔØÁËScanµÄÊôÐÔ±ÈÈç¸ú×ÙIDºÍspan
ID¡£
µ±¼ÆËã¹ý³ÌÊÇÑÓ³Ùµ÷ÓõĻòÊÇÒì²½µÄ£¬´ó¶àÊýGoogle¿ª·¢Õßͨ¹ýÏ̳߳ػòÆäËûÖ´ÐÐÆ÷£¬Ê¹ÓÃÒ»¸öͨÓõĿØÖÆÁ÷¿âÀ´»Øµ÷¡£DapperÈ·±£ËùÓÐÕâÑùµÄ»Øµ÷¿ÉÒÔ´æ´¢Õâ´Î¸ú×ÙµÄÉÏÏÂÎÄ£¬¶øµ±»Øµ÷º¯Êý±»´¥·¢Ê±£¬Õâ´Î¸ú×ÙµÄÉÏÏÂÎÄ»áÓëÊʵ±µÄÏ̹߳ØÁª¡£ÔÚÕâÖÖ·½Ê½Ï£¬Dapper¿ÉÒÔʹÓÃtrace
IDºÍspan IDÀ´¸¨Öú¹¹½¨Òì²½µ÷ÓõÄ·¾¶¡£
Google¼¸ºõËùÓеĽø³Ì¼äͨÐŶ¼Êǽ¨Á¢ÔÚÒ»¸öÓÃC++ºÍJava¿ª·¢µÄRPC¿ò¼ÜÉÏ¡£ÎÒÃÇͨ¹ý¸ú×ÙÖ²Èë¸Ã¿ò¼ÜÀ´¶¨ÒåRPCÖÐËùÓеÄspan¡£spanµÄIDºÍ¸ú×ÙµÄID»á´Ó¿Í»§¶Ë·¢Ë͵½·þÎñ¶Ë¡£»ùÓÚRPCµÄϵͳ±»¹ã·ºÊ¹ÓÃÔÚGoogleÖУ¬ÕâÊÇÒ»¸öÖØÒªµÄÖ²Èëµã¡£
2¡¢ ¸ú×ÙÊ÷ºÍspan

ͼ2£º5¸öspanÔÚDapper¸ú×ÙÊ÷ÖеĹØÁª¹ØÏµ
ÔÚDapper¸ú×ÙÊ÷½á¹¹ÖУ¬Ê÷½ÚµãÊÇÕû¸ö¼Ü¹¹µÄ»ù±¾µ¥Ôª£¬¶øÃ¿Ò»¸ö½ÚµãÓÖÊǶÔspanµÄÒýÓ᣽ڵãÖ®¼äµÄÁ¬Ïß±íʾµÄspanºÍËüµÄ¸¸spanµÄÖ±½Ó¹ØÏµ¡£Í¨¹ý¼òµ¥µÄparentIdºÍspanId¾Í¿ÉÒÔÓÐÐòµØ°ÑËùÓеĹØÏµ´®ÁªÆðÀ´£¬´ïµ½¼Ç¼ҵÎñÁ÷µÄ×÷Óá£
Twitter¹«Ë¾µÄZipkin
Twitter¹«Ë¾µÄZipkinÊÇGoogle DapperϵͳµÄ¿ªÔ´ÊµÏÖ£¬ZipkinÑϸñ°´ÕÕDapperÂÛÎÄʵÏÖ£¬²ÉÓÃScala±àд£¬²¢ÇÒ½ôÃܼ¯³Éµ½Twitter¹«Ë¾×Ô¼ºµÄ·Ö²¼Ê½·þÎñFinagleÖУ¬Ê¹µÃ¸ú×Ù×öµ½¶ÔÓ¦ÓÃ͸Ã÷¡£

ͼ3£ºZipkinÓ¦Óüܹ¹Í¼
ZipkinµÄÕûÌå¼Ü¹¹ÈçÉÏͼËùʾ£¬º¸ÇÁËÐÅÏ¢µÄÊÕ¼¯¡¢´¦ÀíºÍÕ¹ÏÖ¡£
ÌÔ±¦Ó¥ÑÛϵͳ£¨EagleEye£©
ÌÔ±¦Ó¥ÑÛÊÇ»ùÓÚÍøÂçµ÷ÓÃÈÕÖ¾µÄ·Ö²¼Ê½¸ú×Ùϵͳ£¬Ëü¿ÉÒÔ·ÖÎöÍøÂçÇëÇóÔÚ¸÷¸ö·Ö²¼Ê½ÏµÍ³Ö®¼äµÄµ÷ÓÃÇé¿ö£¬´Ó¶øµÃµ½´¦ÀíÇëÇóµÄµ÷ÓÃÁ´ÉϵÄÈë¿ÚURL¡¢Ó¦Ó÷þÎñµÄµ÷ÓùØÏµ£¬´Ó¶øÕÒµ½ÇëÇó´¦ÀíÆ¿¾±£¬¶¨Î»´íÎóÒì³£µÄ¸ùԴλÖá£Í¬Ê±£¬ÒµÎñ·½Ò²¿ÉÒÔÔÚµ÷ÓÃÁ´ÉÏÌí¼Ó×Ô¼ºµÄÒµÎñÂñµãÈÕÖ¾£¬Ê¹¸÷¸öϵͳµÄÍøÂçµ÷ÓÃÓëʵ¼ÊÒµÎñÄÚÈݵõ½¹ØÁª¡£

ͼ4£ºÓ¥ÑÛϵͳµÄ×ÜÌå¼Ü¹¹Í¼
ÎÒÃǵĽâ¾ö·½°¸
Õë¶ÔÓÚ΢·þÎñ£¬¶«ÈíÆ½Ì¨²úÆ·ÌṩÁËÒ»Ì×ÍêÕûµÄ΢·þÎñ½â¾ö·½°¸£¬ÔÚ´Ë»ù´¡ÉÏ£¬¶Ô΢·þÎñ¼Ü¹¹½øÐÐÁËÀ©Õ¹£¬»ùÓÚGoogle
DapperµÄ¸ÅÄÉè¼ÆÁËÒ»Ì×»ùÓÚ΢·þÎñ¼Ü¹¹µÄ·Ö²¼Ê½¸ú×Ùϵͳ¡£
¸Ã¸ú×Ùϵͳ֧³Ö»ùÓÚdubboµÄ΢·þÎñ¿ò¼ÜµÄ¼à¿Ø£¬ÒÔ¼°·Ö²¼Ê½·þÎñµ÷ÓÃÁ´¸ú×Ù£º

ͼ5£º¶«ÈíUniEAPƽ̨»ùÓÚ΢·þÎñµÄ·Ö²¼Ê½¸ú×ÙϵͳÁ÷³ÌÉè¼ÆÍ¼
·Ö²¼Ê½¸ú×ÙϵͳµÄÕûÌåÁ÷³ÌÊÇͨ¹ýÀ©Õ¹dubbo×÷ΪÈë¿Ú£¬°Ñ¼à¿Ø´úÂëÖ²Èëµ½dubbo-filterÀ©Õ¹Ä£¿éÖУ¬È»ºóͨ¹ýtrace-clientÄ£¿éץȡÈÕÖ¾Êý¾Ý£¬´æÈëÎļþ·þÎñÆ÷£¬ÎªÁ˱ÜÃâ²úÉú´óÁ¿Trace¶ÔÏóÔì³ÉÄÚ´æ¶Ñ»ýÒý·¢µÄGCÎÊÌ⣬traceÊ×ÏȲÉȡдÈë¶ÑÍâÄÚ´æµÄ·½Ê½Â䵨£¬È»ºóͨ¹ýtrace-agent´úÀíÄ£¿é¶ÁÈ¡ÈÕÖ¾ÐÅÏ¢£¬¸øtrace-collectorÊÕ¼¯Ä£¿éÌṩÈÕÖ¾Êý¾Ý£¬trace-collectorÊÕ¼¯Ä£¿éͨ¹ýÌṩͳһµÄ½Ó¿Ú£¬ÎªÍⲿ»ñÈ¡Êý¾ÝÌṩ֧³Ö£¬¿ÉÒÔ´«Êäµ½Êý¾Ý¿â¼Ç¼£¬»òÕß´«Ê䏸ÆäËûµÄÊý¾Ý·ÖÎö²úÆ·¡£Trace-webÄ£¿é×÷Ϊ¿ÉÊÓ»¯Õ¹Ê¾Æ½Ì¨£¬Õ¹ÏÖ·þÎñµÄÍêÕû¸ú×ÙÁ´Ìõ¡¢ÐÄÌø¼à¿ØÐÅÏ¢¡¢dubboÔÉú¼à¿ØÐÅÏ¢£¬´ïµ½Êý¾ÝµÄչʾ¹¤×÷¡£
³ýÁËÊý¾ÝµÄ¸ú×ÙÒÔÍ⣬¸Ãϵͳ»¹»áÕûºÏÊý¾Ý·ÖÎö¹¦ÄÜ£º

ͼ6£º¼¯³ÉÊý¾Ý·ÖÎö¹¦ÄÜ£¬ÌáÉýÊý¾ÝµÄÀûÓüÛÖµ
ͨ¹ý¼¯³É¿ÉÊÓ»¯·ÖÎö²úÆ·£¬¼òµ¥µÄ·Ö²¼Ê½¸ú×Ù¹¦Äܱä³ÉÁË¿ÉÊÓ»¯µÄ¼à¿ØÏµÍ³£¬¸ú×ÙÖвúÉúµÄÊý¾Ý£¬»á·¢»Ó³ö¸ü´óµÄ¼ÛÖµ£º
1.ʵʱץȡÊý¾Ý£¬ÊµÊ±·ÖÎöͳ¼Æ£¬Éú³Éͳ¼ÆºÍ±¨±í
2.¿ÉÊÓ»¯µÄ±¨±íϵͳ£¬¸ü¿ìµÄÁ˽âϵͳÔËÐÐ״̬
3.ËÑË÷¹¦ÄÜ£¬¿ìËٵĶ¨Î»¹Ø¼üÎÊÌâ
4.Êý¾ÝÍھݣ¬ÀûÓÃÓÅÐãµÄÊý¾Ý·ÖÎöÄÜÁ¦ºÍÊý¾ÝÄ£ÐÍ£¬½øÐÐÊý¾ÝÔ¤²â
·Ö²¼Ê½¸ú×ÙϵͳӦÓÃÕ¹Íû
ÔÚ·Ö²¼Ê½³¡¾°Ô½À´Ô½ÆÕ¼°µÄ½ñÌ죬·Ö²¼Ê½¸ú×Ù½«×÷Ϊ΢·þÎñ±Ø±¸µÄ»ù´¡×é¼þ´æÔÚ£¬ÍêÉÆµÄ¸ú×Ùϵͳ¿ÉÒÔ¼«´óµÄÌá¸ß¿ª·¢ºÍÔËάµÄЧÂÊ£¬ÊÇÆóÒµÓ¦Ó÷¢Õ¹²»¿É»ñȱµÄ×é³É²¿·Ö£¬ÌرðÊÇÒÔϼ¸µã£º
1¡¢ÒµÎñÁ÷µ÷ÓÃÁ÷³Ì¸ú×Ù
·Ö²¼Ê½ÏµÍ³µÄËùÓÐÈÕÖ¾ÐÅÏ¢¿ÉÒÔͨ¹ýÍêÉÆµÄ¸ú×Ù´®ÁªÆðÀ´£¬Ê¹ÏµÍ³µÄÔËά¸ü¼ÓÎȶ¨£¬¶¨Î»ÎÊÌâ¸ü¼Ó׼ȷ¡£
2¡¢¿ÉÊÓ»¯µÄ¼à¿Ø½çÃæ
ͨ¹ý·Ö²¼Ê½¸ú×ÙϵͳµÄ¿ÉÊÓ»¯¼à¿ØÒ³Ã棬±ÜÃâÁËÈ¥·þÎñÆ÷Éϲ鿴ÈÕÖ¾µÄ·³ÄÕ¡£
3¡¢ÒµÎñ·ÖÎö
ÔÚʹÓÃÁË·Ö²¼Ê½¸ú×Ùϵͳºó£¬ÎÒÃÇ¿ÉÒÔ¿ìËÙµÄÊáÀíÿ¸öµ÷ÓÃÁ´Â·£¬·ÖÎöºÄʱ¹ý³¤µÄÒµÎñÊÇÈçºÎ²úÉúµÄ£¬²¢ÇÒ¿ÉÒÔ¶¨Î»ÐÔÄܲ»¼ÑµÄµ÷ÓÃÆ¬¶Î£¬ºÏÀíµÄ·ÖÎöÎÊÌ⣬ΪÐÔÄÜÓÅ»¯Ìṩ·Ç³£ÓмÛÖµµÄ²Î¿¼Òâ¼û¡£ |