±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË·Ö²¼Ê½ÏµÍ³µ÷ÓÃÁ´¼à¿ØµÄÌØµãÓÐÄÄЩ?ʲôÊÇÈ«Á´Â·ÐÔÄÜ¼à¿Ø?ÔõÑù×öÈ«Á´Â·ÐÔÄÜ¼à¿Ø¼Ü¹¹?
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
·Ö²¼Ê½ÏµÍ³µ÷ÓÃÁ´¼à¿Ø
Ó¦Óüܹ¹Óɼ¯ÖÐʽÏò·Ö²¼Ê½Ñݽøºó£¬Õû¸öµ÷ÓùØÏµ±äµÃ¸´ÔÓ¡£
·Ö²¼Ê½¼Ü¹¹Óɸ´ÔÓÇҽϴó¹æÄ£¼¯Èº¹¹³É£¬¸÷¸öÓ¦ÓÃÖ®¼äÏ൱¶ÀÁ¢£¬¿ÉÄÜÓɲ»Í¬ÍŶӡ¢²»Í¬ÓïÑÔʵÏÖ¡£
ϵͳһ¸öÍêÕûµÄµ÷Óùý³Ì¿ÉÄܺá¿ç¶à¸ö·þÎñ¼°Êý¾ÝÖÐÐÄ¡£
¸´Ôӵĵ÷Óõ¼ÖÂϵͳ³öÎÊÌâºóÄÑÒÔ¶¨Î»ÎÊÌâ¡£
ÎÞ·¨×¼È·ÖªµÀÕûÌåϵͳÐÔÄܼ°ÔËÐÐÇé¿ö¡£
È«Á´Â·ÐÔÄÜ¼à¿Ø
Ò»¸öÇëÇóÍêÕûµÄµ÷ÓÃÁ´¿ÉÄÜÈçÏÂͼ£¬¾¹ý¶à¸öϵͳ·þÎñ£¬µ÷ÓùØÏµ¸´ÔÓ¡£

ÆÚ¼äÎÒÃÇ»á¹Ø×¢¸÷¸öµ÷Óõĸ÷ÏîÐÔÄÜÖ¸±ê£¬±ÈÈçÍÌÍÂÁ¿£¨TPS£©¡¢ÏìӦʱ¼ä¼°´íÎó¼Ç¼µÈ¡£
ÍÌÍÂÁ¿£¬¸ù¾ÝÍØÆË¿ÉÏàÓ¦¼ÆËã×é¼þ¡¢Æ½Ì¨¡¢ÎïÀíÉ豸µÄʵʱÍÌÍÂÁ¿¡£
ÏìӦʱ¼ä£¬°üÀ¨ÕûÌåµ÷ÓõÄÏìӦʱ¼äºÍ¸÷¸ö·þÎñµÄÏìӦʱ¼äµÈ¡£
´íÎó¼Ç¼£¬¸ù¾Ý·þÎñ·µ»ØÍ³¼Æµ¥Î»Ê±¼äÒì³£´ÎÊý¡£
È«Á´Â·ÐÔÄÜ¼à¿Ø´ÓÕûÌåά¶Èµ½¾Ö²¿Î¬¶Èչʾ¸÷ÏîÖ¸±ê£¬½«¿çÓ¦ÓõÄËùÓе÷ÓÃÁ´ÐÔÄÜÐÅÏ¢¼¯ÖÐÕ¹ÏÖ£¬¿É·½±ã¶ÈÁ¿ÕûÌåºÍ¾Ö²¿ÐÔÄÜ£¬²¢ÇÒ·½±ãÕÒµ½¹ÊÕϲúÉúµÄÔ´Í·£¬Éú²úÉϿɼ«´óËõ¶Ì¹ÊÕÏÅųýʱ¼ä¡£
Google Dapper
ϵͳÕû¸öµ÷ÓÃÁ´
1. µ±Óû§·¢ÆðÒ»¸öÇëÇóʱ£¬Ê×Ïȵ½´ïǰ¶ËA·þÎñ£¬È»ºó·Ö±ð¶ÔB·þÎñºÍC·þÎñ½øÐÐRPCµ÷Óã»
2. B·þÎñ´¦ÀíÍê¸øA×ö³öÏìÓ¦£¬µ«ÊÇC·þÎñ»¹ÐèÒªºÍºó¶ËµÄD·þÎñºÍE·þÎñ½»»¥Ö®ºóÔÙ·µ»¹¸øA·þÎñ£¬×îºóÓÉA·þÎñÀ´ÏìÓ¦Óû§µÄÇëÇó£»

¶ÔÕû¸öµ÷Óùý³ÌµÄ×·×Ù
1. ÇëÇóµ½À´Éú³ÉÒ»¸öÈ«¾ÖTraceID£¬Í¨¹ýTraceID¿ÉÒÔ´®ÁªÆðÕû¸öµ÷ÓÃÁ´£¬Ò»¸öTraceID´ú±íÒ»´ÎÇëÇó¡£
2. ³ýÁËTraceIDÍ⣬»¹ÐèÒªSpanIDÓÃÓڼǼµ÷Óø¸×Ó¹ØÏµ¡£Ã¿¸ö·þÎñ»á¼Ç¼ÏÂparent idºÍspan
id£¬Í¨¹ýËûÃÇ¿ÉÒÔ×éÖ¯Ò»´ÎÍêÕûµ÷ÓÃÁ´µÄ¸¸×Ó¹ØÏµ¡£
3. Ò»¸öûÓÐparent idµÄspan³ÉΪroot span£¬¿ÉÒÔ¿´³Éµ÷ÓÃÁ´Èë¿Ú¡£
4. ËùÓÐÕâЩID¿ÉÓÃÈ«¾ÖΨһµÄ64λÕûÊý±íʾ£»
5. Õû¸öµ÷Óùý³ÌÖÐÿ¸öÇëÇó¶¼ÒªÍ¸´«TraceIDºÍSpanID¡£
6. ÿ¸ö·þÎñ½«¸Ã´ÎÇëÇ󸽴øµÄTraceIDºÍ¸½´øµÄSpanID×÷Ϊparent id¼Ç¼Ï£¬²¢ÇÒ½«×Ô¼ºÉú³ÉµÄSpanIDÒ²¼Ç¼Ï¡£
7. Òª²é¿´Ä³´ÎÍêÕûµÄµ÷ÓÃÔòÖ»Òª¸ù¾ÝTraceID²é³öËùÓе÷ÓüǼ£¬È»ºóͨ¹ýparent idºÍspan
id×éÖ¯ÆðÕû¸öµ÷Óø¸×Ó¹ØÏµ¡£

µ÷ÓÃÁ´¼à¿ØºËÐŤ×÷
µ÷ÓÃÁ´Êý¾ÝµÄÉú³É£¬¶ÔÕû¸öµ÷Óùý³ÌµÄËùÓÐÓ¦ÓýøÐÐÂñµã²¢Êä³öÈÕÖ¾¡£
µ÷ÓÃÁ´Êý¾Ý²É¼¯£¬¶Ô¸÷¸öÓ¦ÓÃÖеÄÈÕÖ¾Êý¾Ý½øÐвɼ¯¡£
µ÷ÓÃÁ´Êý¾Ý´æ´¢¼°²éѯ£¬¶Ô²É¼¯µ½µÄÊý¾Ý½øÐд洢£¬ÓÉÓÚÈÕÖ¾Êý¾ÝÁ¿Ò»°ã¶¼ºÜ´ó£¬²»½öÒªÄÜ¶ÔÆä´æ´¢£¬»¹ÐèÒªÄÜÌṩ¿ìËÙ²éѯ¡£
Ö¸±êÔËËã¡¢´æ´¢¼°²éѯ£¬¶Ô²É¼¯µ½µÄÈÕÖ¾Êý¾Ý½øÐи÷ÖÖÖ¸±êÔËË㣬½«ÔËËã½á¹û±£´æÆðÀ´¡£
¸æ¾¯¹¦ÄÜ£¬Ìṩ¸÷ÖÖ·§Öµ¾¯¸æ¹¦ÄÜ¡£
ÕûÌå¼Ü¹¹

* ͨ¹ýAGENTÉú³Éµ÷ÓÃÁ´ÈÕÖ¾¡£
* ͨ¹ýlogstash²É¼¯ÈÕÖ¾µ½kafka¡£
* kafka¸ºÔðÌṩÊý¾Ý¸øÏÂÓÎÏû·Ñ¡£
* storm¼ÆËã»ã¾ÛÖ¸±ê½á¹û²¢Âäµ½es¡£
* storm³éÈ¡traceÊý¾Ý²¢Âäµ½es£¬ÕâÊÇΪÁËÌṩ±È½Ï¸´ÔӵIJéѯ¡£±ÈÈçͨ¹ýʱ¼äά¶È²éѯµ÷ÓÃÁ´£¬¿ÉÒԺܿì²éѯ³öËùÓзûºÏµÄtraceID£¬¸ù¾ÝÕâЩtraceIDÔÙÈ¥Hbase²éÊý¾Ý¾Í¿ìÁË¡£
* logstash½«kafkaÔʼÊý¾ÝÀÈ¡µ½hbaseÖС£hbaseµÄrowkeyΪtraceID£¬¸ù¾ÝtraceID²éѯÊǺܿìµÄ¡£
AGENTÎÞÇÖÈ벿Êð
ͨ¹ýAGENT´úÀíµÄÎÞÇÖÈëʽ²¿Ê𣬽«ÐÔÄܲâÁ¿ÓëÒµÎñÂß¼ÍêÈ«·ÖÀ룬¿ÉÒÔ²âÁ¿ÈÎÒâÀàµÄÈÎÒâ·½·¨µÄÖ´ÐÐʱ¼ä£¬ÕâÖÖ·½Ê½´ó´óÌá¸ßÁ˲ɼ¯Ð§ÂÊ£¬²¢ÇÒ¼õÉÙÔËά³É±¾¡£¸ù¾Ý·þÎñ¿ç¶ÈÖ÷Òª·ÖΪÁ½´óÀàAGENT£º
·þÎñÄÚAGENT£¬ÕâÖÖ·½Ê½ÊÇͨ¹ýJavaµÄagent»úÖÆ£¬¶Ô·þÎñÄÚ²¿µÄ·½·¨µ÷Óòã´ÎÐÅÏ¢½øÐÐÊý¾ÝÊÕ¼¯£¬Èç·½·¨µ÷ÓúÄʱ¡¢Èë²Î¡¢³ö²ÎµÈÐÅÏ¢¡£
¿ç·þÎñAGENT£¬ÕâÖÖÇé¿öÐèÒª¶ÔÖ÷Á÷RPC¿ò¼ÜÒÔ²å¼þÐÎʽÌṩÎÞ·ìÖ§³Ö¡£²¢Í¨¹ýÌṩ±ê×¼Êý¾Ý¹æ·¶ÒÔÊÊÓ¦×Ô¶¨ÒåRPC¿ò¼Ü£º
DubboÖ§³Ö
RestÖ§³Ö
×Ô¶¨ÒåRPCÖ§³Ö
±ÈÈçÉú³ÉµÄÊý¾Ý¸ñʽÈçÏ£º
[mw_shl_code=text,true]{
"hostIp": "192.168.4.1",
"instanceName": "TracingDemo",
"isEntry": true,
"errCode": 0,
"spanId": "3cbfe7f0-141c-4597-8b15-38d2fb145e01",
"parentId": "16a52a9f-e697-45ce-92fb-7395339eae4b",
"traceId": "e5549498-60f3-4870-8483-fe26f6d0367b",
"className": "dao.impl.ProductDaoImpl",
"methodName": "queryProduct",
"inParam": "",
"createTime": 1448442004537,
"returnTime": 1448442004537,
"callTime": 5
}[/mw_shl_code]
µ÷ÓÃÁ´¼à¿ØºÃ´¦
×¼È·ÕÆÎÕÉú²úÒ»ÏßÓ¦Óò¿ÊðÇé¿ö£»
´Óµ÷ÓÃÁ´È«Á÷³ÌÐÔÄܽǶȣ¬Ê¶±ð¶Ô¹Ø¼üµ÷ÓÃÁ´£¬²¢½øÐÐÓÅ»¯¡£
Ìṩ¿É×·ËݵÄÐÔÄÜÊý¾Ý£¬Á¿»¯ IT ÔËά²¿ÃÅÒµÎñ¼ÛÖµ¡£
¿ìËÙ¶¨Î»´úÂëÐÔÄÜÎÊÌ⣬ÐÖú¿ª·¢ÈËÔ±³ÖÐøÐÔµÄÓÅ»¯´úÂ룻
ÐÖú¿ª·¢ÈËÔ±½øÐа׺вâÊÔ£¬Ëõ¶ÌϵͳÉÏÏßÎȶ¨ÆÚ¡£
һЩЧ¹ûͼ



|