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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ѧϰ±Ê¼Ç£ºThe Log£¨ÎÒËù¶Á¹ýµÄ×îºÃµÄһƪ·Ö²¼Ê½¼¼ÊõÎÄÕ£©
 
×÷Õߣºforeach_break À´Ô´£º²®ÀÖÔÚÏß ·¢²¼ÓÚ£º 2015-07-23
  2848  次浏览      31
 

ǰÑÔ

ÕâÊÇһƪѧϰ±Ê¼Ç¡£Ñ§Ï°µÄ²ÄÁÏÀ´×ÔJay KrepsµÄһƪ½²LogµÄ²©ÎÄ¡£Ô­Îĺܳ¤£¬µ«ÊÇÎÒ¼á³Ö¿´ÍêÁË£¬ÊÕ»ñÆÄ¶à£¬Ò²ÉîÉîΪJay¸çµÄ¼¼ÊõÄÜÁ¦¡¢¼Ü¹¹ÄÜÁ¦ºÍ¶ÔÓÚ·Ö²¼Ê½ÏµÍ³µÄÀí½âÖ®Éî¿ÌËùÕÛ·þ¡£Í¬Ê±Ò²ÒòΪijЩÀí½âºÍJay¸ç¹ÛµãÎǺ϶øÂÔÕ´Õ´×Ôϲ¡£

Jay KrepsÊÇǰLinkedinµÄPrincipal Staff Engineer£¬ÏÖÈÎConfluent¹«Ë¾µÄÁªºÏ´´Ê¼È˺ÍCEO£¬KafkaºÍSamzaµÄÖ÷Òª×÷Õß¡£

Ëùν±Ê¼Ç£¬¾ÍÊÇ¿´ÁËÎÄÕ£¬Ìá±Ê¾Í¼Ç£¬ÒòΪJay¸ç±¾Éí±¾ÕÂ×éÖ¯µÄÌ«ºÃ£¬¶øÆä±¾ÉíµÄ¿ÆÑ§ËØÑø¼°ÕÜÑ§ËØÑøÒ²ºÜ¸ß£¬ËùÒÔ˽ÒÔΪ³ö²ÊµÄ¶«Î÷¾Í²»Ê¡ÂÔÁË¡£

Ò»¡¢×ÊÁÏÀ´Ô´

The Log: What every software engineer should know about real-time data¡¯s unifying abstraction

¶þ¡¢±Ê¼Ç

2.1 LogµÄ¼ÛÖµ

1) LogÊÇÈçÏÂϵͳµÄºËÐÄ£º

  • ·Ö²¼Ê½Í¼Êý¾Ý¿â
  • ·Ö²¼Ê½ËÑË÷ÒýÇæ
  • Hadoop
  • µÚÒ»´úºÍµÚ¶þ´úK-VÊý¾Ý¿â

2) Log¿ÉÄܸú¼ÆËã»úµÄÀúÊ·Ò»Ñù³¤£¬²¢ÇÒÊÇ·Ö²¼Ê½Êý¾ÝϵͳºÍʵʱ¼ÆËãϵͳµÄºËÐÄ¡£

3) LogµÄÃû×ֺࣺܶ

  • Commit log
  • Transaction log
  • Write-ahead log

4) ²»Àí½âLog£¬Äã¾Í²»¿ÉÄܳä·ÖÀí½â

  • Êý¾Ý¿â
  • NoSQL´æ´¢
  • K-V´æ´¢
  • ¸´ÖÆ
  • PaxosËã·¨
  • Hadoop
  • Version Control
  • »òÕߣ¬ÈκÎÈí¼þϵͳ

2.2 ʲôÊÇLog£¿

2.2.1 ¸ÅÊö

  • ¼Ç¼»á¸½¼Óµ½logµÄβ²¿¡£
  • ´Ó×óµ½ÓÒ¶ÁÈ¡¼Ç¼¡£
  • ÿ¸öentry¶¼ÓÐΨһÇÒÓÐÐòµÄlog entry ÐòºÅ¡£

¼Ç¼µÄ˳Ðò¶¨ÒåÁËÕâÑùµÄÒ»¸ö¸ÅÄʱ¼ä¡£

ÒòΪԽ¿¿×óµÄ¼Ç¼ԽÔç¡£

EntryµÄÐòºÅ¿ÉÒÔµ±×÷Ò»ÖÖʱ¼ä´Á£¬½«¼Ç¼µÄ˳Ðòµ±×÷ʱ¼äÕâÒ»¸ÅÄî¿´ÆðÀ´ºÜÆæ¹Ö£¬µ«ÊǺܿìÄã¾Í»á·¢ÏÖ£¬ÕâÑù×ö£º¿ÉÒÔ·½±ãµØ½«¡°Ê±¼ä¡±ÓëÈÎÒ»ÌØ¶¨µÄÎïÀíʱÖÓ½âñî¡£

LogºÍ³£¼ûµÄÎļþ¡¢±í£¨table£©Ã»ÓÐÄÇô´óµÄ²î±ð¡£

  • ÎļþÊÇÒ»×é×Ö½Ú
  • ±íÊÇÒ»×é¼Ç¼
  • Log¿ÉÒÔ˵ÊÇijÖÖ½«¼Ç¼°´Ê±¼äÅÅÐòµÄÎļþ»òÕß±í

ÕâÑù˵£¬¿ÉÄÜÄã»á¾õµÃlogÈç´Ë¼òµ¥£¬»¹ÓÐÌÖÂ۵ıØÒªÂð£¿

Æäʵ£¬logµÄºËÐÄÒâÒåÔÚÓÚ£º

Log¼Ç¼Á˺Îʱ·¢ÉúÁËʲô£¨they record what happened and when.£©¡£

¶øÕâÒ»Ìõ£¬Í¨³£ÊÇ·Ö²¼Ê½ÏµÍ³×î×î×îºËÐĵĶ«Î÷¡£

×¢Ò⣬ÕâÀïÓбØÒª³ÎÇ弸¸ö¸ÅÄ

  • ±¾ÆªËùÌÖÂÛµÄLogºÍ³ÌÐòԱͨ³£½Ó´¥µÄÓ¦ÓÃÈÕÖ¾£¨application logs£©²»Í¬
  • Ó¦ÓÃÈÕ־ͨ³£ÊÇÒ»Öַǽṹ»¯µÄ£¬¼Ç¼´íÎóÐÅÏ¢¡¢µ÷ÊÔÐÅÏ¢£¬ÓÃÓÚ×·×ÙÓ¦ÓõÄÔËÐе쬏øÈË¿´µÄÈÕÖ¾£¬±ÈÈçͨ¹ýlog4j»òÕß syslogÀ´Ð´Èë±¾µØÎļþµÄÈÕÖ¾¡£
  • ¶ø±¾ÆªËùÌÖÂÛµÄlogÊÇͨ¹ý±à³Ì·½Ê½·ÃÎʵ쬲»ÊǸøÈË¿´µÄ£¬±ÈÈç¡°journal¡±¡¢¡°data logs¡±¡£
  • Ó¦ÓÃÈÕÖ¾ÊDZ¾ÆªËùÌÖÂÛµÄlogµÄÒ»ÖÖÌØ»¯¡£

2.2.2 Êý¾Ý¿âÖеÄLogs

LogµÄÆðÔ´²»µÃ¶øÖª£¬¾ÍÏñ·¢Ã÷¶þ·Ö²éÕÒµÄÈË£¬ÄÑÒÔÒâʶµ½ÕâÖÖ·¢Ã÷ÊÇÒ»ÖÖ·¢Ã÷¡£

LogµÄ³öÏÖºÍIBMµÄSystem R Ò»ÑùÔç¡£

ÔÚÊý¾Ý¿âÖУ¬ÐèÒªÔÚÊý¾Ý¿â±ÀÀ£Ê±£¬±£³Ö¶àÖÖ¶àÑùµÄÊý¾Ý½á¹¹ºÍË÷Òý±£³Öͬ²½¡£

Ϊ±£Ö¤Ô­×ÓÐԺͳ־ÃÐÔ£¬Êý¾Ý¿âÐèÒªÔÚ¶ÔÊý¾Ý½á¹¹ºÍË÷Òý½øÐÐÐÞ¸ÄÌύ֮ǰ£¬¼Ç¼ÆäÒªÐ޸ĵÄÄÚÈÝ¡£

ËùÒÔlog¼Ç¼Á˺Îʱ·¢ÉúÁËʲô£¬¶øÃ¿Ò»ÕűíºÍË÷Òý±¾Éí£¬¶¼ÊÇÕâÖÖÀúÊ·ÐÅÏ¢µÄÓ³Éä¡£

ÒòΪlogÊÇÁ¢¼´³Ö¾Ã»¯µÄ£¬ËùÒÔµ±crash·¢Éúʱ£¬Æä³ÉΪ»Ö¸´ÆäËü³Ö¾Ã»¯½á¹¹µÄ¿É¿¿À´Ô´¡£

Log´Ó±£Ö¤ACIDÌØÐÔµÄÒ»ÖÖʵÏÖ£¬·¢Õ¹³ÉÁËÒ»ÖÖÊý¾Ý¿âÖ®¼äÊý¾Ý¸´ÖƵÄÊֶΡ£

ºÜÏÔÈ»£¬Êý¾Ý¿âÖз¢ÉúµÄһϵÁеÄÊý¾Ý±ä¸ü£¬³ÉΪÊý¾Ý¿âÖ®¼ä ±£³Öͬ²½×îÐèÒªµÄÐÅÏ¢¡£

Oracle¡¢MySQL¡¢PostgreSQL£¬¶¼°üº¬ÁËlog´«ÊäЭÒ飬½«logµÄÒ»²¿·Ö·¢Ë͵½ÓÃÓÚ±£³Ö¸´ÖƵĴÓÊý¾Ý¿â£¨Slave£©¡£

OracleµÄXStreamsºÍGoldenState£¬½«logµ±×÷Ò»ÖÖͨÓõÄÊý¾Ý¶©ÔÄ»úÖÆ£¬ÒÔÌṩ¸ø·ÇOracleµÄÊý¾Ý¿â¶©ÔÄÊý¾Ý¡£

MySQLºÍPostgreSQLÒ²ÌṩÁËÀàËÆµÄ×é¼þ£¬ÕâЩ×é¼þÊÇÊý¾Ýϵͳ¼Ü¹¹µÄºËÐÄ¡£

ÃæÏò»úÆ÷µÄLog£¬²»½ö½ö¿É±»ÓÃÔÚÊý¾Ý¿âÖУ¬Ò²¿ÉÒÔÓÃÔÚ£º

  • ÏûϢϵͳ
  • Êý¾ÝÁ÷£¨data flow£©
  • ʵʱ¼ÆËã

2.2.3 ·Ö²¼Ê½ÏµÍ³ÖеÄlogs

Log½â¾öÁËÁ½¸öºÜÖØÒªµÄ·Ö²¼Ê½Êý¾ÝϵͳÖеÄÎÊÌ⣺

1) ÓÐÐòµÄÊý¾Ý±ä»¯

2) Êý¾Ý·Ö²¼Ê½»¯

ËùνµÄ״̬»ú¸´ÖÆÔ­Àí£¨State Machine Replication Principle£©£º

Èç¹ûÁ½¸öÈ·¶¨µÄ´¦Àí¹ý³Ì£¬´ÓÏàͬµÄ״̬¿ªÊ¼£¬°´ÕÕÏàͬµÄ˳Ðò£¬½ÓÊÕÏàͬµÄÊäÈ룬ÄÇôËüÃǽ«»á²úÉúÏàͬµÄÊä³ö£¬²¢ÒÔ ÏàͬµÄ״̬½áÊø¡£

Ëùνȷ¶¨µÄ£¨deterministic£©£¬ÊÇÖ¸´¦Àí¹ý³ÌÊÇʱ¼äÎ޹ص쬯䴦Àí½á¹ûÒ಻ÊܶîÍâÊäÈëµÄÓ°Ïì¡£

¿ÉÒÔͨ¹ý·ÇÈ·¶¨µÄÀý×ÓÀ´Àí½â£º

  • ¶àÏ̵߳ÄÖ´ÐÐ˳Ðò²»Í¬µ¼Ö²»Í¬µÄ½á¹û
  • Ö´ÐÐgetTimeOfDay()·½·¨
  • ÆäËüµÄ²»ÄÜÖØ¸´µÄ´¦Àí¹ý³Ì

Ëùν״̬£¬¿ÉÒÔÊÇ»úÆ÷ÉϵÄÈÎÒâÊý¾Ý£¬ÎÞÂÛÔÚ´¦Àí½áÊøºó£¬ÊÇÔÚ»úÆ÷µÄÄÚ´æÖл¹ÊÇ´ÅÅÌÉÏ¡£

ÏàͬµÄÊäÈë°´ÕÕÏàͬµÄ˳Ðò£¬²úÉúÏàͬµÄ½á¹û£¬ÕâÒ»µãÖµµÃÒýÆðÄãµÄ×¢Ò⣬ÕâÒ²ÊÇΪʲôlog»áÈç´ËÖØÒª£¬ÕâÊÇÒ»¸öÖ±¾õÐԵĸÅÄÈç¹ûÄ㽫ͬһ¸ölogÊäÈëÁ½¸öÈ·¶¨ÐԵijÌÐò£¬ËüÃǽ«²úÉúÏàͬµÄÊä³ö¡£

ÔÚ·Ö²¼Ê½ÏµÍ³µÄ¹¹½¨ÖУ¬Òâʶµ½ÕâÒ»µã£¬¿ÉÒÔʹµÃ£º

ÈÃËùÓеĻúÆ÷×öͬÑùµÄÊ£¬¹æÔ¼Îª£º

¹¹½¨·Ö²¼Ê½µÄ¡¢Âú×ãÒ»ÖÂÐÔµÄlogϵͳ£¬ÒÔΪËùÓд¦ÀíϵͳÌṩÊäÈë¡£

LogϵͳµÄ×÷Ó㬾ÍÊǽ«ËùÓеÄÊäÈëÁ÷Ö®ÉϵIJ»È·¶¨ÐÔÇýÉ¢£¬È·±£ËùÓеĴ¦ÀíÏàͬÊäÈëµÄ¸´Öƽڵ㱣³Öͬ²½¡£

ÕâÖÖ·½·¨µÄ×îÃîÖ®´¦ÔÚÓÚ£¬Äã¿ÉÒÔ½«Ë÷ÒýÈÕÖ¾µÄʱ¼ä´Á£¬×÷ΪËùÓи´ÖƽڵãµÄʱÖÓÀ´¶Ô´ý£º

ͨ¹ý½«¸´ÖƽڵãËù´¦Àí¹ýµÄlogÖÐ×î´óµÄʱ¼ä´Á£¬×÷Ϊ¸´ÖƽڵãµÄΨһID£¬ÕâÑù£¬Ê±¼ä´Á½áºÏlog£¬¾Í¿ÉÒÔΨһµØ±í´ï´Ë½ÚµãµÄÕû¸ö״̬¡£

Ó¦ÓÃÕâÖÖ·½·¨µÄ·½Ê½Ò²ºÜ¶à£º

  • ÔÚlogÖмǼ¶ÔÒ»¸ö·þÎñµÄÇëÇó
  • Ôڻظ´ÇëÇóµÄǰºó£¬¼Ç¼·þÎñ״̬µÄ±ä»¯
  • »òÕߣ¬·þÎñËùÖ´ÐеÄһϵÁÐת»»ÃüÁµÈµÈ¡£

ÀíÂÛÉÏÀ´½²£¬ÎÒÃÇ¿ÉÒԼǼһϵÁеĻúÆ÷Ö¸Á»òÕßËùµ÷Ó÷½·¨µÄÃû³Æ¼°²ÎÊý£¬Ö»ÒªÊý¾Ý´¦Àí½ø³ÌµÄÐÐΪÏàͬ£¬ÕâЩ½ø³Ì¾Í¿ÉÒÔ±£Ö¤¿ç½ÚµãµÄÒ»ÖÂÐÔ¡£

³£Íæ¶ùÊý¾Ý¿âµÄÈË£¬»á½«Âß¼­ÈÕÖ¾ºÍÎïÀíÈÕÖ¾Çø·Ö¶Ô´ý£º

  • ÎïÀíÈÕÖ¾£º¼Ç¼ÁËËùÓеÄÐÐÄÚÈݵı仯¡£
  • Âß¼­ÈÕÖ¾£º²»ÊǼǼÄÚÈݵı仯£¬¶øÊÇInsert , update , deleteµÈµ¼ÖÂÐÐÄÚÈݱ仯µÄSQLÓï¾ä¡£

¶Ô·Ö²¼Ê½ÏµÍ³£¬Í¨³£ÓÐÁ½ÖÖ·½Ê½À´´¦Àí¸´ÖÆºÍÊý¾Ý´¦Àí£º

1£© State machine model£¨active ¨C active£©

2£© Primary-back model (active ¨C passive)

ÈçÏÂͼËùʾ£º

ΪÁËÀí½âÉÏÊöÁ½ÖÖ·½Ê½µÄ²»Í¬£¬À´¿´¸ö¼òµ¥µÄÀý×Ó£º

ÏÖÔÚ£¬¼¯ÈºÐèÒªÌṩһ¸ö¼òµ¥µÄ·þÎñ£¬À´×ö¼Ó·¨¡¢³Ë·¨µÈËãÊõÔËËã¡£³õʼ£¬Î¬»¤Ò»¸öÊý×Ö£¬±ÈÈç0¡£

  • Active ¨C active £ºÔÚÈÕÖ¾¼Ç¼ÕâÑùµÄһЩ²Ù×÷£¬Èç¡°+1¡±¡¢¡°*2¡±µÈ£¬ÕâÑù£¬Ã¿¸ö¸´ÖƽڵãÐèÒªÖ´ÐÐÕâЩ²Ù×÷£¬ÒÔ±£Ö¤×îºóµÄÊý¾Ý״̬ÊÇÒ»Öµġ£
  • Active ¨C passive£ºÒ»¸öµ¥¶ÀµÄmaster½Úµã£¬Ö´ÐС°+1¡±¡¢¡°*2¡±µÈ²Ù×÷£¬²¢ÇÒÔÚÈÕÖ¾ÖмǼ²Ù×÷µÄ½á¹û£¬Èç¡°1¡±¡¢¡°3¡±¡¢¡°6¡±µÈ¡£

ÉÏÃæµÄÀý×ÓÒ²½ÒʾÁË£¬ÎªÊ²Ã´Ë³ÐòÊǸ´ÖƽڵãÖ®¼ä±£³ÖÒ»ÖÂÐԵĹؼüÒòËØ£¬Èç¹û´òÂÒÁËÕâЩ²Ù×÷µÄ˳Ðò£¬¾Í»áµÃµ½²»Í¬µÄÔËËã½á¹û¡£

·Ö²¼Ê½log£¬¿ÉÒÔµ±×öijЩһÖÂÐÔËã·¨µÄÊý¾Ý½á¹¹£º

  • Paxos
  • ZAB
  • RAFT
  • Viewstamped Replication

Ò»Ìõlog£¬±íÕ÷ÁËһϵÁеĹØÓÚÏÂÒ»¸öÖµÊÇʲôµÄ¾ö¶¨¡£

2.2.4 Changelog

´ÓÊý¾Ý¿âµÄ½Ç¶ÈÀ´¿´£¬Ò»×é¼Ç¼Êý¾Ý±ä»¯µÄchangelogºÍ±í£¬ÊǶÔżºÍ»¥Í¨µÄ¡£

1£© ÒÀ¾Ý¼Ç¼ÁËÊý¾Ý±ä»¯µÄlog£¬¿ÉÒÔÖØ¹¹Ä³Ò»×´Ì¬µÄ±í£¨Ò²¿ÉÒÔÊǷǹØÏµÐʹ洢ϵͳÖÐÓÐkeyµÄ¼Ç¼£©

2£© Ïà·´£¬±íÈç¹û·¢ÉúÁ˱仯£¬¿ÉÒÔ½«±ä»¯¼ÆÈëlog¡£

ÕâÕýÊÇÄãÏëÒªµÄ׼ʵʱ¸´ÖƵÄÃØ¼®ËùÔÚ£¡

ÕâÒ»µãºÍ°æ±¾¿ØÖÆËù×öµÄÊÂÇ鼫ΪÀàËÆ£º¹ÜÀí·Ö²¼Ê½µÄ¡¢²¢·¢µÄ¡¢¶Ô״̬½øÐеÄÐ޸ġ£

°æ±¾¿ØÖƹ¤¾ß£¬Î¬»¤ÁË·´Ó³Ð޸ĵIJ¹¶¡£¬ÕâÆäʵ¾ÍÊÇlog£¬ÄãºÍÒ»¸ö±»Ç©³ö£¨checked out£©µÄ·ÖÖ§¿ìÕÕ½øÐн»»¥£¬Õâ·Ý¿ìÕÕ¾ÍÏ൱ÓÚÊý¾Ý¿âÖÐµÄ±í¡£Äã»á·¢ÏÖ£¬°æ±¾¿ØÖÆÓë·Ö²¼Ê½ÏµÍ³ÖУ¬¸´Öƶ¼ÊÇ»ùÓÚlogµÄ£ºµ±Äã¸üа汾ʱ£¬ÄãÖ»ÊÇÀ­È¡ÁË·´ Ó³Á˰汾±ä»¯µÄ²¹¶¡£¬²¢Ó¦ÓÃÓÚµ±Ç°µÄ·ÖÖ§¿ìÕÕ¡£

2.3 Êý¾Ý¼¯³É£¨Data integration£©

2.3.1 Êý¾Ý¼¯³ÉµÄº¬Òå

ËùνÊý¾Ý¼¯³É£¬¾ÍÊǽ«Ò»¸ö×éÖ¯ÖеÄËùÓзþÎñºÍϵͳµÄÊý¾Ý£¬±äµÃ¿ÉÓá£

ʵ¼ÊÉÏ£¬¶ÔÊý¾Ý½øÐÐÓÐЧÀûÓ㬺ܷûºÏÂí˹ÂåµÄ²ã´ÎÐèÇóÀíÂÛ¡£

½ð×ÖËþµÄ×îµ×²ã£¬ÊÇÊÕ¼¯Êý¾Ý£¬½«ÆäÕûºÏ½øÓ¦ÓÃϵͳÖУ¨ÎÞÂÛÊÇʵʱ¼ÆËãÒýÇæ£¬»¹ÊÇÎı¾Îļþ£¬»¹ÊÇpython½Å±¾£©¡£

¶øÕâЩÊý¾Ý£¬ÐèÒª¾­¹ýת»»£¬±£³ÖÒ»¸öͳһ¡¢¹æ·¶¡¢Õû½àµÄ¸ñʽ£¬ÒÔÒ×ÓÚ±»¶ÁÈ¡ºÍ´¦Àí¡£

µ±ÉÏÃæµÄÒªÇó±»Âú×ãºó£¬¾Í¿ÉÒÔ¿ªÊ¼¿¼ÂǶàÖÖ¶àÑùµÄÊý¾Ý´¦Àí·½Ê½£¬±ÈÈçmap ¨C reduce »òÕßʵʱ²éѯϵͳ¡£

ºÜÏÔÈ»£¬Èç¹ûûÓÐÒ»¸ö¿É¿¿µÄ¡¢Í걸µÄÊý¾ÝÁ÷£¬Hadoop¾Í½ö½öÊÇÒ»¸ö°º¹óµÄ¡¢ÄÑÒÔÕûºÏµÄ¼ÓÈÈÆ÷£¨¼¯ÈººÜ·Ñµçô£¿£©¡£

Ïà·´£¬Èç¹ûÄܱ£Ö¤Êý¾ÝÁ÷¿É¿¿¡¢¿ÉÓÃÇÒÍ걸£¬¾Í¿ÉÒÔ¿¼ÂǸü¸ß¼¶µÄÍæ·¨¡¢¸üºÃµÄÊý¾ÝÄ£ÐͺÍÒ»Öµġ¢¸üÒ×±»Àí½âµÄÓïÒå¡£

½Ó×Å£¬×¢ÒâÁ¦¾Í¿ÉÒÔ×ªÒÆµ½¿ÉÊÓ»¯¡¢±¨±í¡¢Ëã·¨ºÍÔ¤²âÉÏÀ´£¨ÍÚ°¡»ú°¡Éî¶È°¡£©¡£

2.3.2 Êý¾Ý¼¯³ÉµÄÁ½¸ö¸´ÔÓÐÔ

ʼþ

ʼþÊý¾Ý£¬¼Ç¼ÁËʼþÊÇÔõô·¢ÉúµÄ£¬¶ø²»½ö½öÊÇ·¢ÉúÁËʲô£¬ÕâÒ»Ààlogͨ³£±»µ±×öÓ¦ÓÃÈÕÖ¾£¬ÒòΪһ°ãÊÇÓÉÓ¦ÓÃϵͳдÈëµÄ¡£µ«ÕâÒ»µã£¬Æäʵ»ìÏýÁËlogµÄ¹¦ÄÜ¡£

GoogleµÄ²Æ¸»£¬Æäʵ£¬ÊÇÓÉÒ»¸ö½¨Á¢ÔÚ£¨Óû§£©µã»÷Á÷ºÍºÃ¶ñÓ¡Ïó£¨ÌåÑ飩֮ÉϵÄÏà¹ØÐÔpipeline²úÉúµÄ£¬¶øµã»÷Á÷ºÍÓ¡Ï󣬾ÍÊÇʼþ¡£

¸÷ÖÖ¸÷ÑùµÄרҵÊý¾ÝϵͳµÄ±¬·¢

ÕâЩϵͳ´æÔÚµÄÔ­Òò£º

  • Áª»ú·ÖÎö£¨OLAP£©
  • ËÑË÷
  • ¼òµ¥µÄÔÚÏß´æ´¢
  • Åú´¦Àí
  • ͼÆ×·ÖÎö
  • µÈµÈ£¨Èçspark£©

ÏÔÈ»£¬Òª½«Êý¾ÝÕûºÏ½øÕâÑùµÄϵͳÖУ¬¶ÔÓÚÊý¾Ý¼¯³ÉÀ´½²£¬¼«ÎªÀ§ÄÑ¡£

2.3.3 »ùÓÚÈÕÖ¾½á¹¹µÄÊý¾ÝÁ÷

ÿÖÖÂß¼­ÒâÒåÉϵÄÊý¾ÝÔ´£¬¶¼¿ÉÒÔÒÀ¾Ýlog½øÐн¨Ä£¡£

Êý¾ÝÔ´¿ÉÒÔÊǼǼÁËʼþ£¨µã»÷ºÍPV£©µÄÓ¦ÓóÌÐò£¬¿ÉÒÔÊǽÓÊܸü¸ÄµÄÊý¾Ý¿â±í¡£

ÿ¸ö¶©ÔÄÕߣ¬¶¼¾¡¿ÉÄÜ¿ìµØ´ÓÕâЩÊý¾ÝÔ´²úÉúµÄlogÖлñȡеļǼ£¬Ó¦ÓÃÓÚ±¾µØµÄ´æ´¢ÏµÍ³£¬²¢ÇÒÌáÉýÆäÔÚlogÖеĶÁÈ¡Æ«ÒÆ£¨offset£©¡£¶©ÔÄÕß¿ÉÒÔÊÇÈκÎÊý¾Ýϵͳ£¬±ÈÈ绺´æ¡¢Hadoop¡¢ÁíÒ»¸öÕ¾µãµÄÊý¾Ý¿â£¬»òÕßËÑË÷ÒýÇæ¡£

Log£¬Êµ¼ÊÉÏÌṩÁËÒ»ÖÖÂß¼­Ê±ÖÓ£¬Õë¶ÔÊý¾Ý±ä»¯£¬¿ÉÒÔ²âÁ¿²»Í¬µÄ¶©ÔÄÕßËù´¦µÄ״̬£¬ÒòΪÕâЩ¶©ÔÄÕßÔÚlogÖеĶÁÈ¡Æ«ÒÆ²»Í¬ÇÒÏ໥¶ÀÁ¢£¬ÕâÖÖÆ«ÒƾÍÏñÒ»¸öʱ¼äÒâÒåÉϵġ°Ê±¿Ì¡±Ò»Ñù¡£

¿¼ÂÇÕâÑùÒ»¸öÀý×Ó£¬Ò»¸öÊý¾Ý¿â£¬ºÍһЩ»º´æ·þÎñÆ÷£º

LogÌṩÁËÕâÑùÒ»ÖÖÄÜÁ¦£¬¿ÉÒÔʹµÃËùÓеĻº´æ·þÎñÆ÷µÃµ½Í¬²½£¬²¢ÍƳöËüÃÇËù´¦µÄ¡°Ê±¿Ì¡±¡£

¼ÙÉèÎÒÃÇдÈëÁËÒ»¸ö±àºÅΪXµÄlog£¬Òª´Óij¸ö»º´æ·þÎñÆ÷¶ÁÈ¡Êý¾Ý£¬ÎªÁ˲»¶Áµ½ÀÏÊý¾Ý£¬Ö»ÐèÒª±£Ö¤£ºÔÚ»º´æ·þÎñÆ÷½«Êý¾Ý£¨Í¬²½£©¸´ÖƵ½XÕâ¸öλÖÃǰ£¬ÎÒÃDz»´ÓÕâ¸ö»º´æÖжÁÈ¡Èκζ«Î÷¼´¿É¡£

´ËÍ⣬log»¹ÌṩÁË×÷Ϊ»º³åÇøµÄÄÜÁ¦£¬ÒÔÖ§³ÖÉú²úÕߺÍÏû·ÑÕßµÄÐÐΪÒÔÒì²½µÄ·½Ê½½øÐС£

×î¹Ø¼üµÄÒ»¸öÖ§³ÖÒì²½µÄÔ­Òò£¬ÊǶ©ÔÄϵͳ¿ÉÄܻᷢÉú±ÀÀ£¡¢Òòά»¤¶øÏÂÏߣ¬½Óׯָ´ÉÏÏߣ¬¶øÔÚÕâÖÖÇé¿öÏ£¬Ã¿¸ö¶©ÔÄÕß¶¼ÒÔ×Ô¼ºµÄ²½µ÷Ïû·ÑÊý¾Ý¡£

Ò»¸öÅú´¦Àíϵͳ£¬±ÈÈçHadoop£¬»òÕßÒ»¸öÊý¾Ý²Ö¿â£¬ÊÇÒÔСʱ»òÌìΪµ¥Î»Ïû·ÑÊý¾Ý£¬¶øÒ»¸öʵʱϵͳ£¬Í¨³£ÔÚÃë¼¶Ïû·ÑÊý¾Ý¡£

¶øÊý¾ÝÔ´»òÕßlog£¬¶ÔÏû·ÑÊý¾ÝµÄ¶©ÔÄÕßÒ»ÎÞËùÖª£¬ËùÒÔ£¬ÐèÒªÔÚpipelineÖÐ×öµ½ÎÞ·ìµÄÌí¼Ó¶©ÔÄÕߺÍÒÆ³ý¶©ÔÄÕß¡£

¸üÖØÒªµÄÊÇ£¬¶©ÔÄÕߣ¬Ö»ÐèÒªÖªµÀlog£¬¶ø²»ÐèÒª¶ÔÆäËùÏû·ÑµÄÊý¾ÝµÄÀ´Ô´ÓÐÈκÎÁ˽⣬ÎÞÂÛÕâ¸öÊý¾ÝÔ´ÊÇRDBMS¡¢Hadoop£¬»¹ÊÇÒ»¸ö×îÐÂÁ÷ÐеÄK-VÊý¾Ý¿â£¬µÈµÈ¡£

Ö®ËùÒÔÌÖÂÛlog£¬¶ø²»ÊÇÏûϢϵͳ£¬ÊÇÒòΪ²»Í¬µÄÏûϢϵͳËù±£Ö¤µÄÌØÐÔ²»Í¬£¬²¢ÇÒÓÃÏûϢϵͳÕâ¸ö´Ê£¬ÄÑÒÔÈ«ÃæºÍ¾«È·±í´ïijÖÖÓïÒ壬ÒòΪÏûϢϵͳ£¬¸üÖØÒªµÄÔÚÓÚÖØ¶¨ÏòÏûÏ¢¡£

µ«ÊÇ£¬¿ÉÒÔ½«logÀí½âΪÕâÑùÒ»ÖÖÏûϢϵͳ£¬ÆäÌṩÁ˳־ÃÐÔ±£Ö¤¼°Ç¿ÓÐÐòµÄÓïÒ壬ÔÚͨѶϵͳÖУ¬Õâ³Æ×÷Ô­×ӹ㲥¡£

2.4 ÔÚLinkedin

LinkedinĿǰµÄÖ÷Ҫϵͳ°üÀ¨£¨×¢£º2013Ä꣩£º

  • Search
  • Social Graph
  • Voldemort (K-V´æ´¢)
  • Espresso (Îĵµ´æ´¢)
  • Recommendation engine
  • OLAP query engine
  • Hadoop
  • Terradata
  • Ingraphs (¼à¿ØÍ¼Æ×¼°metrics·þÎñ)

ÿ¸öϵͳ£¬¶¼ÔÚÆäרҵµÄÁìÓòÌṩרÃŵĸ߼¶¹¦ÄÜ¡£

£¨ÕâÒ»¶ÎÌ«³¤Ì«³¤ÁË£¬JayÐÖÊ®·ÖÄÜÙ©°¡£¬ËùÒÔÌôÖØµãµÄÀ´¼Ç°É£¡£©

1£© Ö®ËùÒÔÒýÈëÊý¾ÝÁ÷Õâ¸ö¸ÅÄÊÇÒòΪҪÔÚoracleÊý¾Ý¿âµÄ±íÖ®ÉÏ£¬½¨Á¢Ò»¸ö³éÏóµÄ»º´æ²ã£¬ÎªËÑË÷ÒýÇæµÄË÷Òý¹¹½¨ºÍÉ罻ͼÆ×¸üУ¬Ìá¹©ÍØÕ¹ÄÜÁ¦¡£

2£© ΪÁ˸üºÃµÄ´¦ÀílinkedinµÄÒ»Ð©ÍÆ¼öËã·¨£¬¿ªÊ¼´îHadoop¼¯Èº£¬µ«ÍŶÓÔÚ´Ë¿éµÄ¾­ÑéÉÐdz£¬ËùÒÔ×ßÁ˺ܶàÍä·¡£

3£© ¿ªÊ¼Ê±£¬¼òµ¥´Ö±©µØÈÏΪֻҪ½«Êý¾Ý´ÓoracleÊý¾Ý²Ö¿âÖÐÀ­³öÀ´£¬¶ª½øhadoop¾Í¿ÉÒÔÁË¡£½á¹û·¢ÏÖ£ºµÚÒ»£¬½«Êý¾Ý´ÓoracleÊý¾Ý²Ö¿â¿ìËÙµ¼³öÊÇ ¸öجÃΣ»µÚ¶þ£¬Ò²ÊǸüÔã¸âµÄÒ»µã£¬Êý¾Ý²Ö¿âÖÐijЩÊý¾ÝµÄ´¦Àí²»¶Ô£¬µ¼ÖÂÁËhadoopµÄÅú´¦ÀíÈÎÎñ²»Äܰ´Ô¤ÆÚÊä³ö½á¹û£¬ÇÒͨ¹ýhadoopÅú´¦ÀíÖ´ÐÐÈÎ Îñ£¬Í¨³£²»¿ÉÄæ£¬ÌرðÊÇÔÚ³öÁ˱¨±íÖ®ºó¡£

4£© ×îºó£¬ÍŶÓÅׯúÁË´ÓÊý¾Ý²Ö¿âÖгöÊý¾ÝµÄ·½Ê½£¬Ö±½ÓÒÔÊý¾Ý¿âºÍlogsΪÊý¾ÝÔ´¡£½Ó×Å£¬Ôì³öÁËÒ»¸öÂÖ×Ó£ºK-V ´æ´¢£¨Voldemort£©¡£

5£© ¼´Ê¹ÊÇÊý¾Ý¿½±´ÕâÑù²»¸ß´óÉϵĻî¶ù£¬Ò²Õ¼¾ÝÁËÍŶӴóÁ¿µÄʱ¼äÈ¥´¦Àí£¬¸üÔãµÄÊÇ£¬Ò»µ©Êý¾Ý´¦ÀíµÄpipelineÖÐÓиöµã³ö´í£¬hadoopÁ¢Âí±äµÃ·Ï²ñ£¬ÒòΪÔÙÅ£±ÆµÄËã·¨ÅÜÔÚ´íÎóµÄÊý¾ÝÉÏ£¬Ö»ÓÐÒ»¸öºó¹û£¬¾ÍÊDzúÉú¸ü¶àµÄ´íÎóÊý¾Ý¡£

6£© ¼´Ê¹ÍŶӹ¹½¨µÄ¶«Î÷³éÏó²ã´ÎºÜ¸ß£¬Õë¶ÔÿÖÖÊý¾ÝÔ´»¹ÊÇÐèÒªÌØ¶¨µÄÅäÖ㬶øÕâÒ²ÊǺܶà´íÎóºÍʧ°ÜµÄ¸ùÔ´¡£

7£© Ò»´óÅú³ÌÐòÔ±Ïë¸ú½ø£¬Ã¿¸ö³ÌÐòÔ±¶¼ÓÐÒ»´óÅúµÄÏë·¨£¬¼¯³ÉÕâ¸öϵͳ£¬Ìí¼ÓÕâ¸ö¹¦ÄÜ£¬ÕûºÏÕâ¸öÌØÉ«£¬»òÕßÏëÒª×Ô¶¨ÒåµÄÊý¾ÝÔ´¡£

8£© Jay¸ç¿ªÊ¼Òâʶµ½£º

µÚÒ»£¬ ËäÈ»ËûÃǹ¹½¨µÄpipelines»¹ºÜ²Ú£¬µ«ÊÇÈ´¼«ÆäÓмÛÖµ¡£¼´Ê¹Êǽâ¾öÁËÊý¾ÝÔÚеÄϵͳ£¨Èçhadoop£©ÖпÉÓõÄÎÊÌ⣬Ҳ½âËøÁËÒ»´óÅú¿ÉÄÜÐÔ¡£ÒÔǰÄÑ×öµÄ¼ÆË㿪ʼ±äΪ¿ÉÄÜ¡£ÐµIJúÆ·ºÍ·ÖÎö£¬½öÐèÒª½âËøÆäËüϵͳÖеÄÊý¾Ý£¬²¢ÇÒ½øÐÐÕûºÏ£¬¾Í¿ÉÒÔÈÝÒ×µØ×ö³öÀ´¡£

µÚ¶þ£¬ ºÜÃ÷ÏÔ£¬¿É¿¿µØÊý¾Ý×°ÔØÐèÒª¸ü¼áʵµÄÖ§³Å£¬Èç¹ûÄܹ»²¶»ñËùÓеĽṹ£¬¾Í¿ÉÒÔÈÃhadoopÊý¾Ý×°ÔØÍêÈ«×Ô¶¯»¯£¬²»ÐèÒª¼ÓÈëеÄÊý¾ÝÔ´»òÈ˹¤ÐÞ¸ÄÊý¾ÝµÄģʽ¡£Êý¾Ý»áÉñÆæµØ³öÏÖÔÚHDFSÖУ¬¶øÐµÄÊý¾ÝÔ´¼ÓÈëºó£¬HiveµÄ±í»áÓúÏÊʵÄÁÐ×Ô¶¯»¯µØ¡¢×ÔÊÊÓ¦µØÉú³É¡£

µÚÈý£¬Êý¾Ý¸²¸Ç¶ÈÔ¶Ô¶²»×ã¡£ÒòΪҪ´¦ÀíºÜ¶àеÄÊý¾ÝÔ´£¬ºÜÄÑ¡£

9£© ΪÁ˽â¾öÐÂÊý¾ÝÔ´¼ÓÈëºóµÄÊý¾Ý×°ÔØÎÊÌ⣬ÍŶӿªÊ¼ÁËÕâÑùµÄ³¢ÊÔ£º

ºÜ¿ì£¬ËûÃÇ·¢ÏÖÕâÑù¸ãÐв»Í¨£¬ÒòΪ·¢²¼ºÍ¶©ÔÄ¡¢Éú²úºÍÏû·Ñ£¬Êý¾ÝÁ÷ͨ³£»¹ÊÇË«ÏòµÄ£¬Õâ³ÉÁËÒ»¸öO(n^2)µÄÎÊÌâ¡£

ËùÒÔ£¬ËûÃÇÐèÒªµÄÊÇÕâÑùµÄÄ£ÐÍ£º

ÐèÒª½«Ã¿¸öÏû·ÑÕß´ÓÊý¾ÝÔ´¸ôÀ룬ÀíÏëµÄÇé¿öÏ£¬ÕâЩÏû·ÑÕßÖ»ºÍÒ»¸ödata repository½øÐн»»¥£¬¶øÕâ¸örepository¿ÉÒÔÌṩËüÃÇ·ÃÎÊÈÎÒâÊý¾ÝµÄÄÜÁ¦¡£

10£©ÏûϢϵͳ + log = Kafka£¬kafkaºá¿Õ³öÊÀ¡£

2.5 LogºÍETL¡¢Êý¾Ý²Ö¿âµÄ¹ØÏµ

2.5.1 Êý¾Ý²Ö¿â

1) Ò»¸ö×°Óиɾ»µÄ¡¢½á¹¹»¯µÄ¡¢¼¯³ÉµÄÊý¾Ýrepository£¬ÓÃÓÚ·ÖÎö¡£

2) ËäÈ»Ïë·¨ºÜÃÀºÃ£¬µ«ÊÇ»ñÈ¡Êý¾ÝµÄ·½Ê½Óеã¹ýʱÁË£ºÖÜÆÚÐԵشÓÊý¾Ý¿â»ñÈ¡Êý¾Ý£¬½«Æäת»»ÎªÄ³ÖֿɶÁÐÔ¸ü¼ÑµÄ¸ñʽ¡£

3) ֮ǰµÄÊý¾Ý²Ö¿âÎÊÌâÔÚÓÚ£º½«¸É¾»µÄÊý¾ÝºÍÊý¾Ý²Ö¿â¸ß¶ÈñîºÏ¡£

Êý¾Ý²Ö¿â£¬Ó¦¸ÃÊÇÒ»×é²éѯ¹¦Äܵļ¯ºÏ£¬ÕâЩ¹¦ÄÜ·þÎñÓÚ±¨±í¡¢ËÑË÷¡¢ad hot ·ÖÎö£¬°üº¬Á˼ÆÊý£¨counting£©¡¢¾ÛºÏ£¨aggregation£©¡¢¹ýÂË£¨filtering£©µÈ²Ù×÷£¬ËùÒÔ¸üÓ¦¸ÃÊÇÒ»¸öÅú´¦Àíϵͳ¡£

µ«Êǽ«¸É¾»µÄÊý¾ÝºÍÕâÑùµÄÒ»ÖÖÅú´¦Àíϵͳ¸ß¶ÈñîºÏÔÚÒ»Æð£¬Òâζ×ÅÕâЩÊý¾Ý²»Äܱ»ÊµÊ±ÏµÍ³Ïû·Ñ£¬±ÈÈçËÑË÷ÒýÇæµÄË÷Òý¹¹½¨¡¢ÊµÊ±¼ÆËãºÍʵʱ¼à¿ØÏµÍ³£¬µÈµÈ¡£

2.5.2 ETL

Jay¸çÈÏΪ£¬ETLÎÞ·Ç×öÁ½¼þÊ£º

1£© ¶ÔÊý¾Ý½øÐгéÈ¡ºÍÇåÏ´£¬½«Êý¾Ý´ÓÌØ¶¨µÄϵͳÖнâËø

2£© ÖØ¹¹Êý¾Ý£¬Ê¹ÆäÄÜͨ¹ýÊý¾Ý²Ö¿â½øÐвéѯ¡£±ÈÈ罫Êý¾ÝÀàÐͱäΪÊÊÅäij¸ö¹ØÏµÐÍÊý¾Ý¿âµÄÀàÐÍ£¬½«Ä£Ê½×ª»»ÎªÐÇÐÍ»òÕßÑ©»¨Ä£Ê½£¬»òÕß½«Æä·Ö½âΪijÖÖÃæÏòÁеĴ洢¸ñʽ¡£

µ«ÊÇ£¬½«ÕâÁ½¼þÊÂñîºÏÔÚÒ»Æð£¬ÎÊÌâºÜ´ó£¬ÒòΪ¼¯³ÉºóµÄ¡¢¸É¾»µÄÊý¾Ý£¬±¾Ó¦Äܱ»ÆäËüʵʱϵͳ¡¢Ë÷Òý¹¹½¨ÏµÍ³¡¢µÍÑÓʱµÄ´¦ÀíϵͳÏû·Ñ¡£

Êý¾Ý²Ö¿âÍŶӣ¬¸ºÔðÊÕ¼¯ºÍÇåÏ´Êý¾Ý£¬µ«ÊÇ£¬ÕâЩÊý¾ÝµÄÉú²úÕßÍùÍùÒòΪ²»Ã÷È·Êý¾Ý²Ö¿âÍŶӵÄÊý¾Ý´¦ÀíÐèÇ󣬵¼ÖÂÊä³öºÜÄѱ»³éÈ¡ºÍÇåÏ´µÄÊý¾Ý¡£

ͬʱ£¬ÒòΪºËÐÄÒµÎñÍŶӶԺ͹«Ë¾µÄÆäËüÍŶӱ£³Ö²½µ÷Ò»ÖÂÕâ¼þʶù²»Ãô¸Ð£¬ËùÒÔÕæÕýÄÜ´¦ÀíµÄÊý¾Ý¸²¸Ç¶ÈºÜµÍ£¬Êý¾ÝÁ÷ºÜ´àÈõ£¬ºÜÄÑ¿ìËÙÓ¦¶Ô±ä»¯¡£

ËùÒÔ£¬¸üºÃµÄ·½Ê½ÊÇ£º

Èç¹ûÏëÔÚÒ»¸ö¸É¾»µÄÊý¾Ý¼¯ÉÏ×öµãËÑË÷¡¢ÊµÊ±¼à¿ØÇ÷ÊÆÍ¼¡¢ÊµÊ±±¨¾¯µÄʶù£¬ÒÔÔ­ÓеÄÊý¾Ý²Ö¿â»òÕßhadoop¼¯ÈºÀ´×÷Ϊ»ù´¡ÉèÊ©£¬¶¼ÊDz»ºÏÊʵġ£¸üÔãµÄÊÇ£¬ETLËù¹¹½¨µÄÕë¶ÔÊý¾Ý²Ö¿âµÄÊý¾Ý¼ÓÔØÏµÍ³£¬¶ÔÆäËü£¨ÊµÊ±£©ÏµÍ³µã¶ùÓÃûÓС£

×îºÃµÄÄ£ÐÍ£¬¾ÍÊÇÔÚÊý¾Ý·¢²¼Õß·¢²¼Êý¾Ý֮ǰ£¬¾ÍÒѾ­Íê³ÉÁËÊý¾ÝµÄÇåÏ´¹ý³Ì£¬ÒòΪֻÓз¢²¼Õß×îÇå³þËüÃǵÄÊý¾ÝÊÇʲôÑùµÄ¡£¶øËùÓÐÔÚÕâ¸ö½×¶ÎËù×öµÄ²Ù×÷£¬¶¼Ó¦¸ÃÂú×ãÎÞËðºÍ¿ÉÄæ¡£

ËùÓзḻÓïÒå¡¢»òÌí¼ÓÖµµÄʵʱת»»£¬¶¼Ó¦ÔÚԭʼµÄlog·¢²¼ºó´¦Àí£¨post-processing£©£¬°üÀ¨ÎªÊ¼þÊý¾Ý½¨Á¢»á»°£¬»òÕßÌí¼ÓijЩ¸ÐÐËȤµÄ×ֶΡ£Ô­Ê¼µÄlogÒÀ¾É¿É±»µ¥¶ÀʹÓ㬵«ÊÇ´ËÀàʵʱӦÓÃÒ²ÅÉÉúÁËеIJÎÊý»¯µÄlog¡£

×îºó£¬Ö»ÓжÔÓ¦ÓÚ¾ßÌåµÄÄ¿±êϵͳµÄÊý¾Ý¾ÛºÏ²Ù×÷£¬Ó¦×÷ΪÊý¾Ý×°ÔØµÄÒ»²¿·Ö£¬±ÈÈçת»»ÎªÐÇÐÍ»òÑ©»¨ÐÍģʽ£¬ÒÔÔÚÊý¾Ý²Ö¿âÖнøÐзÖÎöºÍ³ö±¨±í¡£ÒòΪÕâ¸ö½×¶Î£¬¾ÍÏñ´«Í³µÄETLËù×öµÄÄÇÑù£¬ÒòΪÓÐÁ˷dz£¸É¾»ºÍ¹æ·¶µÄÊý¾ÝÁ÷£¬£¨ÓÐÁËlogºó£©ÏÖÔÚ±äµÃ·Ç³£¼òµ¥¡£

2.6 LogÎļþºÍʼþ

ÒÔlogΪºËÐĵļܹ¹£¬»¹Óиö¶îÍâµÄºÃ´¦£¬¾ÍÊÇÒ×ÓÚʵÏÖÎÞñîºÏµÄ¡¢Ê¼þÇý¶¯µÄϵͳ¡£

´«Í³µÄ ²¶»ñÓû§»î¶¯ºÍϵͳ±ä»¯µÄ·½Ê½£¬Êǽ«´ËÀàÐÅϢдÈëÎı¾ÈÕÖ¾£¬È»ºó³éÈ¡µ½Êý¾Ý²Ö¿â»òÕßhadoop¼¯ÈºÖнøÐоۺϺʹ¦Àí£¬Õâ¸öÎÊÌâºÍÇ°ÃæËùÊöµÄÊý¾Ý²Ö¿âºÍETLÎÊÌâÀàËÆ£ºÊý¾ÝÓëÊý¾Ý²Ö¿âµÄ¸ß¶ÈñîºÏ¡£

ÔÚLinkedin£¬Æä»ùÓÚkafka¹¹½¨ÁËʼþÊý¾Ý´¦Àíϵͳ¡£Îª¸÷ÖÖ¸÷ÑùµÄaction¶¨ÒåÁ˳ɰÙÉÏǧÖÖʼþÀàÐÍ£¬´ÓPV¡¢Óû§¶ÔÓÚ¹ã¸æµÄ¸Ï½Å£¨ad impressions£©¡¢ËÑË÷£¬µ½·þÎñµÄµ÷ÓúÍÓ¦ÓõÄÒì³££¬µÈµÈ¡£

ΪÁËÌå»áÉÏÊöʼþÇý¶¯ÏµÍ³µÄºÃ´¦£¬¿´Ò»¸ö¼òµ¥µÄ¹ØÓÚʼþµÄÀý×Ó£º

ÔÚ¹¤×÷»ú»áÒ³ÃæÉÏ£¬Ìṩһ¸ö»ú»á¡£Õâ¸öÒ³ÃæÓ¦¸ÃÖ»¸ºÔðÈçºÎչʾ»ú»á£¬¶ø²»Ó¦¸Ã¹ý¶àµØ°üº¬ÆäËüÂß¼­¡£µ«ÊÇ£¬Äã»á·¢ÏÖ£¬ÔÚÒ»¸ö¾ßÓÐÏ൱¹æÄ£µÄÍøÕ¾ÖУ¬×öÕâ¼þÊ£¬ºÜÈÝÒ׾ͻáÈÃÔ½À´Ô½¶àµÄÓëչʾ»ú»áÎ޹صÄÂß¼­Ç£³¶½øÀ´¡£

±ÈÈ磬ÎÒÃÇÏ£Íû¼¯³ÉÒÔÏÂϵͳ¹¦ÄÜ£º

1£© ÎÒÃÇÐèÒª½«Êý¾Ý·¢Ë͵½hadoopºÍÊý¾Ý²Ö¿â×öÀëÏß´¦Àí¡£

2£© ÎÒÃÇÐèҪͳ¼ÆÒ³Ãæä¯ÀÀ´ÎÊý£¬ÒÔÈ·±£Ä³Ð©ä¯ÀÀ²»ÊÇΪÁË×¥È¡ÍøÒ³ÄÚÈÝʲôµÄ¡£

3£© ÎÒÃÇÐèÒª¾ÛºÏ¶Ô´ËÒ³ÃæµÄä¯ÀÀÐÅÏ¢£¬ÔÚ»ú»á·¢²¼ÕߵķÖÎöÒ³ÃæÉϳÊÏÖ¡£

4£© ÎÒÃÇÐèÒª¼Ç¼ijÓû§¶Ô´ËÒ³ÃæµÄä¯ÀÀ¼Ç¼£¬ÒÔÈ·±£ÎÒÃǶԴËÓû§ÌṩÁËÓмÛÖµµÄ¡¢ÌåÑéÁ¼ºÃµÄÈκÎÊÊÒË´ËÓû§µÄ¹¤×÷»ú»á£¬¶ø²»ÊǶԴËÓû§Ò»±éÓÖÒ»±éµØÖظ´Õ¹Ê¾Ä³ ¸ö»ú»á£¨ÏëÏëÀÏÆÅ²»ÔÚ¼Ò²ÅÄÜÍæµÄÓÎÏ·°É£¬ÄǺìÂÌÀ¶ÉÁ˸µÄÌØÐ§£¬ÅäºÏÄǾ¢±¬µÄDJ·çÎèÇú£¬»òÕßÄÇÒ¡°Ú¾Û½¹µÄÊÂÒµ·åºÍÆëXС¶ÌȹµÄgirls£¬È»ºóµã½øÈ¥²Å·¢ ÏÖÊDZêÌâµ³µÄad°É£¡£©¡£

5£© ÎÒÃǵÄÍÆ¼öϵͳÐèÒª¼Ç¼¶Ô´ËÒ³ÃæµÄä¯ÀÀ¼Ç¼£¬ÒÔÕýÈ·µØ×·×ٴ˹¤×÷»ú»áµÄÁ÷Ðжȡ£

ºÜ¿ì£¬½ö½öչʾ»ú»áµÄÒ³ÃæÂß¼­£¬¾Í»á±äµÃ¸´ÔÓ¡£µ±ÎÒÃÇÔÚÒÆ¶¯¶ËÒ²Ôö¼ÓÁË´Ë»ú»áµÄչʾʱ£¬²»µÃ²»°ÑÂß¼­Ò²Ç¨ÒƹýÈ¥£¬ÕâÓÖ¼Ó¾çÁ˸´Ôӳ̶ȡ£»¹Ã»Í꣬¾À½áµÄ¶«Î÷ÊÇ£¬¸ºÔð´¦Àí´ËÒ³ÃæµÄ¹¤³Ìʦ£¬ÐèÒªÓÐÆäËüϵͳµÄ֪ʶ£¬ÒÔÈ·±£ÉÏÊöµÄÄÇЩ¹¦ÄÜÄÜÕýÈ·µÄ¼¯³ÉÔÚÒ»Æð¡£

ÕâÖ»ÊǸö¼«Æä¼òµ¥µÄÀý×Ó£¬ÔÚʵ¼ùÖУ¬Çé¿öÖ»»á¸ü¼Ó¸´ÔÓ¡£

ʼþÇý¶¯¿ÉÒÔÈÃÕâ¼þʱäµÃ¼òµ¥¡£

¸ºÔð³ÊÏÖ»ú»áµÄÒ³Ãæ£¬Ö»ÐèÒª³ÊÏÖ»ú»á²¢¼Ç¼һЩºÍ³ÊÏÖÏà¹ØµÄÒòËØ£¬±ÈÈ繤×÷»ú»áµÄÏà¹ØÊôÐÔ£¬Ë­ä¯ÀÀÁËÕâ¸öÒ³Ãæ£¬ÒÔ¼°ÆäËüµÄÓÐÓõÄÓë³ÊÏÖÏà¹ØµÄÐÅÏ¢¡£ Ò³Ãæ²»ÐèÒª±£³Ö¶ÔÆäËüϵͳµÄ֪ʶºÍÁ˽⣬±ÈÈçÍÆ¼öϵͳ¡¢°²È«ÏµÍ³¡¢»ú»á·¢²¼ÕߵķÖÎöϵͳ£¬»¹ÓÐÊý¾Ý²Ö¿â£¬ËùÓеÄÕâЩϵͳֻÐèÒª×÷Ϊ¶©ÔÄÕߣ¬¶©ÔÄÕâ¸öʼþ£¬ È»ºó¶ÀÁ¢µØ½øÐÐËüÃǸ÷×ԵĴ¦Àí¼´¿É£¬¶ø³ÊÏÖ»ú»áµÄÒ³Ãæ²»ÐèÒªÒòΪÐµĶ©ÔÄÕß»òÏû·ÑÕߵļÓÈë¶ø×ö³öÐ޸ġ£

2.7 ¹¹½¨¿ÉÀ©Õ¹µÄlog

·ÖÀë·¢²¼ÕߺͶ©ÔÄÕß²»ÐÂÏÊ£¬µ«ÊÇÒª±£Ö¤¶à¸ö¶©ÔÄÕßÄܹ»ÊµÊ±´¦ÀíÏûÏ¢£¬²¢ÇÒͬʱ±£Ö¤À©Õ¹ÄÜÁ¦£¬¶ÔÓÚlogϵͳÀ´Ëµ£¬ÊÇÒ»¼þ±È½ÏÀ§ÄѵÄÊ¡£

Èç¹ûlogµÄ¹¹½¨²»¾ß±¸¿ìËÙ¡¢µÍ¿ªÏúºÍ¿ÉÀ©Õ¹ÄÜÁ¦£¬ÄÇô½¨Á¢ÔÚ´Ëlogϵͳ֮ÉϵÄÒ»ÇÐÃÀºÃ¶¼Ãâ̸¡£

ºÜ¶àÈË¿ÉÄÜÈÏΪlogϵͳÔÚ·Ö²¼Ê½ÏµÍ³ÖÐÊǸöºÜÂý¡¢ÖØÐÍ¿ªÏúµÄ»î¶ù£¬²¢ÇÒ½öÓÃÀ´´¦ÀíһЩÀàËÆÓÚZooKeeper¸üÊʺϴ¦ÀíµÄÔªÊý¾ÝµÈÐÅÏ¢¡£

µ«ÊÇLinkedinÏÖÔÚ£¨×¢£º2013Ä꣩£¬ÔÚkafkaÖÐÿÌì´¦Àí600ÒÚÌõ²»Í¬µÄÏûϢдÈ루Èç¹ûËãÊý¾ÝÖÐÐĵľµÏñµÄ»°£¬ÄǾÍÊǼ¸Ç§ÒÚÌõдÈ룩¡£

Jay¸çËûÃÇÔõô×öµ½µÄÄØ£¿

1) ¶Ôlog½øÐзָpartitioning the log£©

2) ͨ¹ýÅúÁ¿¶ÁдÓÅ»¯ÍÌÍÂÁ¿

3) ±ÜÃâ²»±ØÒªµÄÊý¾Ý¿½±´

ͨ¹ý½«logÇÐΪ¶à¸öpartitionÀ´ÌṩÀ©Õ¹ÄÜÁ¦£º

1) ÿ¸öpartition¶¼ÊÇÓÐÐòµÄlog£¬µ«ÊÇpartitionsÖ®¼äûÓÐÈ«¾ÖµÄ˳Ðò¡£

2) ½«ÏûϢдÈëÄĸöpartitionÍêÈ«ÓÉдÈëÕß¿ØÖÆ£¬Í¨¹ýÒÀÕÕijÖÖÀàÐ͵Äkey£¨Èçuser_id£©½øÐзָ

3) ·Ö¸îʹµÃlogµÄ¸½¼Ó²Ù×÷£¬¿ÉÒÔ²»ÓÃÔÚ·ÖÆ¬£¨sharding£©Ö®¼ä½øÐÐЭµ÷¾Í½øÐУ¬Í¬Ê±£¬±£Ö¤ÏµÍ³µÄÍÌÍÂÁ¿ºÍkafka¼¯ÈºµÄ¹æÄ£³ÊÏßÐÔ¹ØÏµ¡£

4) ËäȻûÓÐÌṩȫ¾Ö˳Ðò£¨Êµ¼ÊÉÏÏû·ÑÕß»òÕß¶©ÔÄÕß³ÉǧÉÏÍò£¬ÌÖÂÛËüÃǵÄÈ«¾Ö˳ÐòÒ»°ãûÓÐɶ¼ÛÖµ£©£¬µ«ÊÇkafkaÌṩÁËÕâÑùÒ»ÖÖ±£Ö¤£º·¢ËÍÕß°´ÕÕʲô˳Ðò½« ÏûÏ¢·¢¸øÄ³¸öpartition£¬´ÓÕâ¸öpartitionµÝ½»³öÈ¥µÄÏûÏ¢¾ÍÊÇʲô˳Ðò£¨Ê²Ã´Ë³Ðò½ø£¬Ê²Ã´Ë³Ðò³ö£©¡£

5) ÿ¸öpartition¶¼°´ÕÕÅäÖúõÄÊýÄ¿½øÐи´ÖÆ£¬Èç¹ûÒ»¸öleader½Úµã¹ÒÁË£¬ÆäËüµÄ½Úµã»á³ÉΪеÄleader¡£

6) Ò»Ìõlog£¬Í¬ÎļþϵͳһÑù£¬ÏßÐԵĶÁдģʽ¿É±»ÓÅ»¯£¬½«Ð¡µÄ¶Áдlog¿ÉÒÔ×é³É¸ü´óµÄ¡¢¸ßÍÌÍÂÁ¿µÄ²Ù×÷¡£KafkaÔÚÕâ¼þÊÂÉÏ×öµÄºÜÃÍ¡£Åú´¦ÀíÓÃÔÚÁ˸÷ ÖÖ³¡¾°Ö®Ï£¬±ÈÈç¿Í»§¶Ë½«Êý¾Ý·¢Ë͵½·þÎñ¶Ë¡¢½«Êý¾ÝдÈë´ÅÅÌ¡¢·þÎñÆ÷Ö®¼äµÄÊý¾Ý¸´ÖÆ¡¢½«Êý¾Ý´«Ë͸øÏû·ÑÕߣ¬ÒÔ¼°È·ÈÏÌá½»Êý¾ÝµÈ³¡¾°¡£

7) ×îºó£¬kafkaÔÚÄÚ´ælog¡¢´ÅÅÌlog¡¢ÍøÂçÖз¢Ë͵ÄlogÉÏ£¬²ÉÓÃÁ˺ܼòµ¥µÄ¶þ½øÖƸñʽ£¬ÒÔÀûÓÚÀûÓø÷ÖÖÓÅ»¯¼¼Êõ£¬±ÈÈçÁ㿽±´Êý¾Ý´«Êä¼¼Êõ£¨zero-copy data transfer£©¡£

Öî¶àµÄÓÅ»¯¼¼Êõ£¬»ã¾ÛÆðÀ´£¬¿ÉÒÔÈÃÄ㼴ʹÔÚÄڴ汬ÂúµÄÇéÐÎÏ£¬Ò²Äܰ´ÕÕ´ÅÅÌ»òÍøÂçÄÜÌṩµÄ×î´óÄÜÁ¦½øÐÐÊý¾Ý¶Áд¡£

2.8 LogsºÍʵʱ´¦Àí

ÄãÒÔΪJay¸çÌṩÁËÕâô¸öÃÀÀöµÄ·½·¨°ÑÊý¾Ý¸´ÖÆÀ´¸´ÖÆÈ¥¾ÍÍêÁË£¿

Ä㣡´í£¡ÁË£¡

LogÊÇÁ÷µÄÁíÒ»ÖÖ˵·¨£¬logsÊÇÁ÷´¦ÀíµÄºËÐÄ¡£

2.8.1 ʲôÊÇÁ÷´¦Àí

Jay¸çÈÏΪ£º

1£©Á÷´¦ÀíÊÇÁ¬ÐøÊý¾Ý´¦ÀíµÄ»ù´¡ÉèÊ©¡£

2£©Á÷´¦ÀíµÄ¼ÆËãÄ£ÐÍ£¬¾ÍÈçͬMapReduce»òÆäËü·Ö²¼Ê½´¦Àí¿ò¼ÜÒ»Ñù£¬Ö»ÊÇÐèÒª±£Ö¤µÍÑÓ³Ù¡£

3£©Åú´¦ÀíʽµÄÊÕ¼¯Êý¾Ýģʽ£¬µ¼ÖÂÁËÅú´¦ÀíʽµÄÊý¾Ý´¦Àíģʽ¡£

4£©Á¬ÐøµÄÊÕ¼¯Êý¾Ýģʽ£¬µ¼ÖÂÁËÁ¬ÐøµÄÊý¾Ý´¦Àíģʽ¡£

5£©Jay¸ç½²Á˸öÃÀ¹úÈË¿ÚÆÕ²éµÄ·½Ê½À´½âÊÍÅú´¦Àí¡£

ÔÚlinkedin£¬ÎÞÂÛÊǻÊý¾Ý»¹ÊÇÊý¾Ý¿âµÄ±ä»¯£¬¶¼ÊÇÁ¬ÐøµÄ¡£

Åú´¦Àí°´Ìì´¦ÀíÊý¾Ý£¬ºÍÁ¬Ðø¼ÆË㽫´°¿ÚÉèΪһÌìÀ×ͬ¡£

ËùÒÔ£¬Á÷´¦ÀíÊÇÕâÑùÒ»ÖÖ¹ý³Ì£º

6£©ÔÚ´¦ÀíÊý¾Ýʱ£¬´øÁËÒ»¸öʱ¼äµÄ¸ÅÄ²»ÐèÒª¶ÔÊý¾Ý±£³ÖÒ»¸ö¾²Ì¬µÄ¿ìÕÕ£¬ËùÒÔ¿ÉÒÔÔÚÓû§×Ô¶¨ÒåµÄƵÂÊ֮ϣ¬Êä³ö½á¹û£¬¶ø²»±ØµÈÊý¾Ý¼¯µ½´ïijÖÖ¡°½áÊø¡±µÄ״̬¡£

7£©´ÓÕâ¸öÒâÒåÉϽ²£¬Á÷´¦ÀíÊÇÅú´¦ÀíµÄÒ»ÖÖ·º»¯£¬²¢ÇÒ¿¼Âǵ½ÊµÊ±Êý¾ÝµÄÁ÷Ðг̶ȣ¬ÕâÊÇÒ»ÖÖ¼«ÆäÖØÒªµÄ·º»¯¡£

8£©Ðí¶àÉÌÒµ¹«Ë¾ÎÞ·¨½¨Á¢Á÷´¦ÀíÒýÇæ£¬ÍùÍùÒòΪÎÞ·¨½¨Á¢Á÷Êý¾ÝÊÕ¼¯ÒýÇæ¡£

9£©Á÷´¦Àí¿çÔ½ÁËʵʱÏìӦʽ·þÎñºÍÀëÏßÅú´¦ÀíµÄ»ù´¡Éèʩ֮¼äµÄºè¹µ¡£

10£©Logϵͳ£¬½â¾öÁ˺ܶàÁ÷´¦ÀíģʽÖеĹؼüÎÊÌ⣬ÆäÖÐ×î´óµÄÒ»¸öÎÊÌâ¾ÍÊÇÈçºÎÔÚʵʱµÄ¶à¸ö¶©ÔÄÕßģʽÏ£¬Ìṩ¿ÉÓÃÊý¾ÝµÄÎÊÌ⣨Á÷Êý¾ÝÊÕ¼¯£©¡£

2.9 Êý¾ÝÁ÷ͼÆ×

Á÷´¦ÀíÖÐ×îÓÐȤµÄµØ·½ÔÚÓÚ£¬ÆäÍØÕ¹ÁËʲôÊÇÊý¾ÝÔ´£¨feeds£©ÕâÒ»¸ÅÄî¡£

ÎÞÂÛÊÇԭʼÊý¾ÝµÄlogs¡¢feeds£¬»¹ÊÇʼþ¡¢Ò»ÐÐÒ»ÐеÄÊý¾Ý¼Ç¼£¬¶¼À´×ÔÓ¦ÓóÌÐòµÄ»î¶¯¡£

µ«ÊÇ£¬Á÷´¦Àí»¹¿ÉÒÔÈÃÎÒÃÇ´¦ÀíÀ´×ÔÆäËüfeedsµÄÊý¾Ý£¬ÕâЩÊý¾ÝºÍԭʼÊý¾Ý£¬ÔÚÏû·ÑÕß¿´À´£¬²¢ÎÞ¶þÖ£¬¶øÕâЩÅÉÉúµÄfeeds¿ÉÒÔ°üº¬ÈÎÒâ³Ì¶ÈµÄ¸´ÔÓÐÔ¡£

Ò»¸öÁ÷´¦ÀíÈÎÎñ£¬Ó¦¸ÃÊÇÕâÑùµÄ£º´Ólogs¶ÁÈ¡Êý¾Ý£¬½«Êä³öдÈëlogs»òÕ߯äËüϵͳ¡£

×÷ΪÊäÈëºÍÊä³öµÄlogs£¬Á¬Í¨ÕâЩ´¦Àí±¾Éí£¬ºÍÆäËüµÄ´¦Àí¹ý³Ì£¬¹¹³ÉÁËÒ»¸öͼ¡£

ÊÂʵÉÏ£¬ÒÔlogΪºËÐĵÄϵͳ£¬ÔÊÐíÄ㽫¹«Ë¾»ò»ú¹¹ÖеÄÊý¾Ý²¶»ñ¡¢×ª»»ÒÔ¼°Êý¾ÝÁ÷£¬¿´×÷ÊÇһϵÁеÄlogs¼°ÔÚÆäÉϽøÐÐдÈëµÄ´¦Àí¹ý³ÌµÄ½áºÏ¡£

Ò»¸öÁ÷´¦Àí³ÌÐò£¬Æäʵ²»±ØºÜ¸ß´óÉÏ£º¿ÉÒÔÊÇÒ»¸ö´¦Àí¹ý³Ì»òÕßÒ»×é´¦Àí¹ý³Ì£¬µ«ÊÇ£¬ÎªÁ˱ãÓÚ¹ÜÀí´¦ÀíËùÓõĴúÂ룬¿ÉÒÔÌṩһЩ¶îÍâµÄ»ù´¡ÉèÊ©ºÍÖ§³Ö¡£

ÒýÈëlogsÓÐÁ½¸öÄ¿µÄ£º

1£© ±£Ö¤ÁËÊý¾Ý¼¯¿ÉÒÔÖ§³Ö¶à¸ö¶©ÔÄÕßģʽ£¬¼°ÓÐÐò¡£

2£© ¿ÉÒÔ×÷ΪӦÓõĻº³åÇø¡£ÕâµãºÜÖØÒª£¬ÔÚ·Çͬ²½µÄÊý¾Ý´¦Àí½ø³ÌÖУ¬Èç¹ûÉÏÓεÄÉú²úÕß³öÊý¾ÝµÄËٶȸü¿ì£¬Ïû·ÑÕßµÄËٶȸú²»ÉÏ£¬ÕâÖÖÇé¿öÏ£¬ÒªÃ´Ê¹´¦Àí½ø³Ì×èÈû£¬ÒªÃ´ÒýÈ뻺³åÇø£¬ÒªÃ´¶ªÆúÊý¾Ý¡£

¶ªÆúÊý¾ÝËÆºõ²»ÊǸöºÃµÄÑ¡Ôñ£¬¶ø×èÈû´¦Àí½ø³Ì£¬»áʹµÃËùÓеÄÊý¾ÝÁ÷µÄ´¦ÀíͼÆ×ÖеĴ¦Àí½ø³Ì¿¨×¡¡£¶ølog£¬ÊÇÒ»Öֺܴó£¬Ìش󣬷dz£´óµÄ»º³åÇø£¬ËüÔÊÐí´¦Àí ½ø³ÌµÄÖØÆô£¬Ê¹µÃij¸ö½ø³Ìʧ°Üºó£¬²»Ó°ÏìÁ÷´¦ÀíͼÆ×ÖÐµÄÆäËü½ø³Ì¡£Õâ¶ÔÓÚÒ»¸öÅÓ´óµÄ»ú¹¹È¥À©Õ¹Êý¾ÝÁ÷ÊǷdz£¹Ø¼üµÄ£¬ÒòΪ²»Í¬µÄÍŶÓÓв»Í¬µÄ´¦ÀíÈÎÎñ£¬ÏÔÈ» ²»ÄÜÒòΪij¸öÈÎÎñ·¢Éú´íÎó£¬Õû¸öÁ÷´¦Àí½ø³Ì¶¼±»¿¨×¡¡£

StormºÍSamza¾ÍÊÇÕâÑùµÄÁ÷´¦ÀíÒýÇæ£¬²¢ÇÒ¶¼ÄÜÓÃkafka»òÆäËüÀàËÆµÄϵͳ×÷ΪËüÃǵÄlogϵͳ¡£

£¨×¢£ºJay¸çÏ൱ÃÍ£¬Ç°ÓÐkafka£¬ºóÓÐsamza¡££©

2.10 ÓÐ״̬µÄʵʱ´¦Àí

ºÜ¶àÁ÷´¦ÀíÒýÇæÊÇÎÞ״̬µÄ¡¢Ò»´ÎÒ»¼Ç¼µÄÐÎʽ£¬µ«ºÜ¶àÓÃÀý¶¼ÐèÒªÔÚÁ÷´¦ÀíµÄij¸ö´óСµÄʱ¼ä´°¿ÚÄÚ½øÐи´ÔÓµÄcounts , aggregationsºÍjoins²Ù×÷¡£

±ÈÈ磬µã»÷Á÷ÖУ¬joinÓû§ÐÅÏ¢¡£

ÄÇô£¬ÕâÖÖÓÃÀý£¬¾ÍÐèҪ״̬µÄÖ§³Ö¡£ÔÚ´¦ÀíÊý¾ÝµÄµØ·½£¬ÐèҪά»¤Ä³¸öÊý¾ÝµÄ״̬¡£

ÎÊÌâÔÚÓÚ£¬ÈçºÎÔÚ´¦ÀíÕß¿ÉÄܹҵôµÄÇé¿öϱ£³ÖÕýÈ·µÄ״̬£¿

½«×´Ì¬Î¬»¤ÔÚÄÚ´æÖпÉÄÜÊÇ×î¼òµ¥µÄ£¬µ«µÖ²»×¡crash¡£

Èç¹û½öÔÚij¸öʱ¼ä´°¿ÚÄÚά»¤×´Ì¬£¬µ±¹Òµô»òÕßʧ°Ü·¢Éú£¬ÄÇô´¦Àí¿ÉÒÔÖ±½Ó»ØÍ˵½´°¿ÚµÄÆðµãÀ´ÖØ·Å£¬µ«ÊÇ£¬Èç¹ûÕâ¸ö´°¿ÚÓÐ1СʱÄÇô³¤£¬Õâ¿ÉÄÜÐв»Í¨¡£

»¹Óиö¼òµ¥µÄ°ì·¨£¬¾ÍÊǰÑ״̬´æÔÚij¸öÔ¶³ÌµÄ´æ´¢ÏµÍ³»òÊý¾Ý¿âÖУ¬µ«ÊÇÕâ»áËðʧÊý¾ÝµÄ¾Ö²¿ÐÔ²¢²úÉúºÜ¶àµÄÍøÂç¼äÊý¾ÝÍù·µ£¨network round-trip£©¡£

»ØÒäÏ£¬ÉÏÎÄÖÐÔøÌáµ½µÄÊý¾Ý¿âÖеıíºÍlogµÄ¶ÔżÐÔ¡£

Ò»¸öÁ÷´¦Àí×é¼þ£¬¿ÉÒÔʹÓñ¾µØµÄ´æ´¢»òË÷ÒýÀ´Î¬»¤×´Ì¬£º

  • Bdb
  • Leveldb
  • Lucene
  • Fastbit

ͨ¹ý¼Ç¼¹ØÓÚ±¾µØË÷ÒýµÄchangelog£¬ÓÃÓÚÔÚcrashºó»Ö¸´×´Ì¬¡£ÕâÖÖ»úÖÆ£¬ÆäʵҲ½ÒʾÁËÒ»ÖÖÒ»°ã»¯µÄ£¬¿ÉÒԴ洢ΪÈÎÒâË÷ÒýÀàÐ͵ģ¬ÓëÊäÈëÁ÷ͬʱ±»·Ö¸î£¨co-partitioned£©µÄ״̬¡£

µ±´¦Àí½ø³Ì±ÀÀ££¬Æä¿ÉÒÔ´ÓchangelogÖлָ´Ë÷Òý£¬log³äµ±Á˽«±¾µØ×´Ì¬×ª»¯ÎªÄ³ÖÖ»ùÓÚʱ¼ä±¸·ÝµÄÔöÁ¿¼Ç¼µÄ½ÇÉ«¡£

ÕâÖÖ»úÖÆ»¹ÌṩÁËÒ»ÖÖºÜÓÅÑŵÄÄÜÁ¦£º´¦Àí¹ý³Ì±¾ÉíµÄ״̬Ҳ¿ÉÒÔ×÷Ϊlog±»¼Ç¼ÏÂÀ´£¬ÏÔÈ»£¬ÆäËüµÄ´¦Àí¹ý³Ì¿ÉÒÔ¶©ÔÄÕâ¸ö״̬¡£

½áºÏÊý¾Ý¿âÖеÄlog¼¼Êõ£¬Õë¶ÔÊý¾Ý¼¯³ÉÕâÒ»³¡¾°£¬ÍùÍù¿ÉÒÔ×ö³öºÜÇ¿´óµÄÊ£º

½«log´ÓÊý¾Ý¿âÖгéÈ¡³öÀ´£¬²¢ÔÚ¸÷ÖÖ¸÷ÑùµÄÁ÷´¦ÀíϵͳÖнøÐÐË÷Òý£¬ÄÇô£¬Ó벻ͬµÄʼþÁ÷½øÐÐjoin¾Í³ÉΪ¿ÉÄÜ¡£

2.11 Log ºÏ²¢

ÏÔÈ»£¬ÓÃlog¼Ç¼ȫʱȫÁ¿µÄ״̬±ä¸üÐÅÏ¢£¬²»Ì«¿ÉÄÜ¡£

KafkaʹÓÃÁËlogºÏ²¢»òÕßlogÀ¬»ø»ØÊÕ¼¼Êõ£º

1£© ¶ÔÓÚʼþÊý¾Ý£¬kafkaÖ»±£ÁôÒ»¸öʱ¼ä´°¿Ú£¨¿ÉÔÚʱ¼äÉÏÅäÖÃΪ¼¸Ì죬»òÕß°´¿Õ¼äÀ´ÅäÖã©

2£© ¶ÔÓÚkeyed update£¬kafka²ÉÓÃѹËõ¼¼Êõ¡£´ËÀàlog£¬¿ÉÒÔÓÃÀ´ÔÚÁíÍâµÄϵͳÖÐͨ¹ýÖØ·Å¼¼ÊõÀ´Öؽ¨Ô´ÏµÍ³µÄ״̬¡£

Èç¹û±£³ÖȫʱȫÁ¿µÄlogs£¬Ëæ×Åʱ¼äÔö³¤£¬Êý¾Ý½«»á±äµÃÔ½À´Ô½´ó£¬ÖطŵĹý³ÌÒ²»áÔ½À´Ô½³¤¡£

Kafka²»ÊǼòµ¥µØ¶ªÆúÀϵÄÈÕÖ¾ÐÅÏ¢£¬¶øÊDzÉÓúϲ¢µÄ·½Ê½£¬¶ªÆú·ÏÆúµÄ¼Ç¼£¬±ÈÈ磬ij¸öÏûÏ¢µÄÖ÷¼ü×î½ü±»¸üÐÂÁË¡£

2.12 ϵͳ¹¹½¨

2.12.1 ·Ö²¼Ê½ÏµÍ³

Log£¬ÔÚ·Ö²¼Ê½Êý¾Ý¿âµÄÊý¾ÝÁ÷ϵͳºÍÊý¾Ý¼¯³ÉÖÐËù°çÑݵĽÇÉ«ÊÇÒ»Öµģº

  • ³éÏóÊý¾ÝÁ÷
  • ±£³ÖÊý¾ÝÒ»ÖÂÐÔ
  • ÌṩÊý¾Ý»Ö¸´ÄÜÁ¦

Äã¿ÉÒÔ½«Õû¸ö»ú¹¹ÖеÄÓ¦ÓÃϵͳºÍÊý¾ÝÁ÷£¬¿´×÷ÊÇÒ»¸öµ¥¶ÀµÄ·Ö²¼Ê½Êý¾Ý¿â¡£

½«ÃæÏò²éѯµÄ¶ÀÁ¢ÏµÍ³£¬±ÈÈçRedis , SOLR , Hive tables µÈµÈ£¬¿´×÷ÊÇÒ»ÖÖÌØ±ðµÄ¡¢Êý¾ÝÖ®ÉϵÄË÷Òý¡£

½«Storm¡¢SamzaµÈÁ÷´¦Àíϵͳ£¬¿´×öÒ»ÖÖ¾«ÐÄÉè¼Æ¹ýµÄ´¥·¢Æ÷»òÕßÎﻯÊÓͼ»úÖÆ¡£

¸÷ʽ¸÷ÑùµÄÊý¾Ýϵͳ£¬±¬·¢ÐԵijöÏÖ£¬Æäʵ£¬ÕâÖÖ¸´ÔÓÐÔÔçÒÑ´æÔÚ¡£

ÔÚ¹ØÏµÐÍÊý¾Ý¿âµÄ»Ô»ÍʱÆÚ£¨heyday£©£¬Ä³¸ö¹«Ë¾»òÕß»ú¹¹¹â¹ØÏµÐÍÊý¾Ý¿â¾ÍÓкܶàÖÖ¡£

ÏÔÈ»£¬²»¿ÉÄܽ«ËùÓеĶ«Î÷¶¼¶ª½øÒ»¸öHadoop¼¯ÈºÖУ¬ÆÚÍûÆä½â¾öËùÓеÄÎÊÌâ¡£ËùÒÔ£¬ÈçºÎ¹¹½¨Ò»¸öºÃµÄϵͳ£¬¿ÉÄÜ»áÏñÏÂÃæÕâÑù£º

¹¹½¨Ò»¸ö·Ö²¼Ê½ÏµÍ³£¬Ã¿¸ö×é¼þ¶¼ÊÇһЩºÜСµÄ¼¯Èº£¬Ã¿¸ö¼¯Èº²»Ò»¶¨ÄÜÍêÕûÌṩ°²È«ÐÔ¡¢ÐÔÄܸôÀë¡¢»òÕßÁ¼ºÃµÄÀ©Õ¹ÐÔ£¬µ«ÊÇ£¬Ã¿¸öÎÊÌâ¶¼Äܵõ½£¨×¨ÒµµØ£©½â¾ö¡£

Jay¸ç¾õµÃ£¬Ö®ËùÒÔ¸÷ʽ¸÷ÑùµÄϵͳ±¬·¢ÐԵسöÏÖ£¬¾ÍÊÇÒòΪҪ¹¹½¨Ò»¸öÇ¿´óµÄ·Ö²¼Ê½ÏµÍ³Ê®·ÖÀ§ÄÑ¡£¶øÈç¹û½«ÓÃÀýÏÞÖÆµ½Ò»Ð©¼òµ¥µÄ£¬±ÈÈç²éѯÕâÑùµÄ³¡¾°Ï£¬Ã¿¸öϵͳ¶¼ÓÐ×ã¹»µÄÄÜÁ¦È¥½â¾öÎÊÌ⣬µ«ÊÇÒª°ÑÕâЩϵͳÕûºÏÆðÀ´£¬ºÜÄÑ¡£

Jay¸ç¾õµÃÔÚδÀ´¹¹½¨ÏµÍ³ÕâʶùÓÐÈýÖÖ¿ÉÄÜ£º

1£© ±£³ÖÏÖ×´¡£ÕâÖÖÇé¿öÏ£¬Êý¾Ý¼¯³ÉÒÀÈ»ÊÇ×îÍ·´óµÄÎÊÌ⣬ËùÒÔÒ»¸öÍⲿµÄlogϵͳ¾ÍºÜÖØÒª£¨kafka£¡£©

2£© ³öÏÖÒ»¸öÇ¿´óµÄ£¨Èçͬ»Ô»ÍʱÆÚµÄ¹ØÏµÐÍÊý¾Ý¿â£©Äܽâ¾öËùÓÐÎÊÌâµÄϵͳ£¬ÕâËÆºõÓе㲻¿ÉÄÜ·¢Éú¡£

3£© ÐÂÉú´úµÄϵͳ´ó²¿·Ö¶¼¿ªÔ´£¬Õâ½ÒʾÁ˵ÚÈýÖÖ¿ÉÄÜ£ºÊý¾Ý»ù´¡ÉèÊ©¿É±»ÀëɢΪһ×é·þÎñ¡¢ÒÔ¼°ÃæÏòÓ¦ÓõÄϵͳAPI,¸÷Àà·þÎñ¸÷˾ÆäÊ£¬Ã¿¸ö¶¼²»ÍêÕû£¬È´ÄÜרҵµÎ½â¾öרÃŵÄÎÊÌ⣬Æäʵͨ¹ýÏÖ´æµÄjava¼¼ÊõÕ»¾ÍÄÜ¿´³ö¶ËÄߣº

  • ZooKeeper£º½â¾ö·Ö²¼Ê½ÏµÍ³µÄͬ²½¡¢Ð­×÷ÎÊÌ⣨Ҳ¿ÉÄÜÊÜÒæÓÚ¸ü¸ß³éÏó²ã´ÎµÄ×é¼þÈçhelix¡¢curator£©.
  • Mesos¡¢YARN£º½â¾öÐéÄ⻯ºÍ×ÊÔ´¹ÜÀíÎÊÌâ¡£
  • ǶÈëʽµÄ×é¼þLucene¡¢LevelDB£º½â¾öË÷ÒýÎÊÌâ¡£
  • Netty¡¢Jetty¼°¸ü¸ß³éÏó²ã´ÎµÄFinagle¡¢rest.li½â¾öÔ¶³ÌͨѶÎÊÌâ¡£
  • Avro¡¢Protocol Buffers¡¢Thrift¼°umpteen zlin£º½â¾öÐòÁл¯ÎÊÌâ¡£
  • Kafka¡¢bookeeper£ºÌṩbacking logÄÜÁ¦¡£

´ÓijÖֽǶÈÀ´¿´£¬¹¹½¨ÕâÑùµÄ·Ö²¼Ê½ÏµÍ³£¬¾ÍÏñij¸ö°æ±¾µÄÀָ߻ýľһÑù¡£ÕâÏÔÈ»¸ú¸ü¹ØÐÄAPIµÄÖÕ¶ËÓû§Ã»ÓÐÌ«´ó¹ØÏµ£¬µ«ÊÇÕâ½ÒʾÁ˹¹½¨Ò»¸öÇ¿´óϵͳ²¢±£³Ö¼òµ¥ÐÔµÄÒ»ÌõµÀ·£º

ÏÔÈ»£¬Èç¹û¹¹½¨Ò»¸ö·Ö²¼Ê½ÏµÍ³µÄʱ¼ä´Ó¼¸Äê½µµ½¼¸ÖÜ£¬ÄÇô¹¹½¨Ò»¸ö¶ÀÁ¢µÄÅÓ´óϵͳµÄ¸´ÔÓÐԾͻáÏûʧ£¬¶øÕâÖÖÇé¿öµÄ³öÏÖ£¬Ò»¶¨ÊÇÒòΪ³öÏÖÁ˸ü¿É¿¿¡¢¸üÁé»îµÄ¡°»ýľ¡±¡£

2.12.2 LogÔÚϵͳ¹¹½¨ÖеĵØÎ»

Èç¹ûÒ»¸öϵͳ£¬ÓÐÁËÍⲿlogϵͳµÄÖ§³Ö£¬ÄÇôÿ¸ö¶ÀÁ¢µÄϵͳ¾Í¿ÉÒÔͨ¹ý¹²ÏílogÀ´½µµÍÆä×ÔÉíµÄ¸´ÔÓÐÔ£¬Jay¸çÈÏΪlogµÄ×÷ÓÃÊÇ£º

1) ´¦ÀíÊý¾ÝÒ»ÖÂÐÔÎÊÌâ¡£ÎÞÂÛÊÇÁ¢¼´Ò»ÖÂÐÔ»¹ÊÇ×îÖÕÒ»ÖÂÐÔ£¬¶¼¿ÉÒÔͨ¹ýÐòÁл¯¶ÔÓÚ½ÚµãµÄ²¢·¢²Ù×÷À´´ïµ½¡£

2) ÔÚ½Úµã¼äÌṩÊý¾Ý¸´ÖÆ¡£

3) Ìṩ¡°Ìá½»¡±µÄÓïÒå¡£±ÈÈ磬ÔÚÄãÈÏΪÄãµÄд²Ù×÷²»»á¶ªÊ§µÄÇé¿öϽøÐвÙ×÷È·ÈÏ¡£

4) ÌṩÍⲿϵͳ¿É¶©ÔĵÄÊý¾ÝÔ´£¨feeds£©¡£

5) µ±½ÚµãÒòʧ°Ü¶ø¶ªÊ§Êý¾Ýʱ£¬Ìṩ»Ö¸´µÄÄÜÁ¦£¬»òÕßÖØÐ¹¹½¨Ðµĸ´Öƽڵ㡣

6) ´¦Àí½Úµã¼äµÄ¸ºÔؾùºâ¡£

ÒÔÉÏ£¬´ó¸ÅÊÇÒ»¸öÍêÕûµÄ·Ö²¼Ê½ÏµÍ³ÖÐÓ¦ÌṩµÄ´ó²¿·Ö¹¦ÄÜÁË£¨Jay¸çȷʵ°®Log£¡£©£¬Ê£ÏµľÍÊǿͻ§¶ËµÄAPIºÍÖîÈçһЩ¹¹½¨Ë÷ÒýµÄÊÂÁË£¬±ÈÈçÈ«ÎÄË÷ÒýÐèÒª»ñÈ¡ËùÓеÄpartitions£¬¶øÕë¶ÔÖ÷¼üµÄ²éѯ£¬Ö»ÐèÒªÔÚij¸öpartitionÖлñÈ¡Êý¾Ý¡£

£¨ÄǰÑʣϵÄÊÂÇéÒ²½»´úϰɣ¬Jay¸çÍþÎ䣡£©

ϵͳ¿É±»·ÖΪÁ½¸öÂß¼­×é¼þ£¨ÕâÇ¿´óµÄÀí½âºÍ¹¦Á¦£©£º

1£© Log²ã

2£© ·þÎñ²ã

Log²ã£¬ÒÔÐòÁл¯µÄ¡¢ÓÐÐòµÄ·½Ê½²¶»ñ״̬µÄ±ä»¯£¬¶ø·þÎñ²ã£¬Ôò´æ´¢Íⲿ²éѯÐèÒªµÄË÷Òý£¬±ÈÈçÒ»¸öK-V´æ´¢¿ÉÄÜÐèÒªB-tree¡¢sstableË÷Òý£¬¶øÒ»¸öËÑË÷·þÎñÐèÒªµ¹ÅÅË÷Òý¡£

д²Ù×÷¼È¿ÉÒÔÖ±½ÓÈëlog²ã£¬Ò²¿ÉÒÔͨ¹ý·þÎñ²ã×ö´úÀí¡£Ð´Èëlog»á²úÉúÒ»¸öÂß¼­ÉϵÄʱ¼ä´Á£¨logµÄË÷Òý£©£¬±ÈÈçÒ»¸öÊý×ÖID£¬Èç¹ûϵͳpartition»¯ÁË£¬ÄÇô£¬·þÎñ²ãºÍlog²ã»áÓµÓÐÏàͬµÄpartitions£¨µ«Æä¸÷×ԵĻúÆ÷Êý¿ÉÄܲ»Í¬£©¡£

·þÎñ²ã¶©Ôĵ½log²ã£¬²¢ÇÒÒÔ×î¿ìµÄËÙ¶È¡¢°´log´æ´¢µÄ˳Ðò×·log£¬½«Êý¾ÝºÍ״̬±ä»¯Í¬²½½ø×Ô¼ºµÄ±¾µØË÷ÒýÖС£

¿Í»§¶Ë½«»áµÃµ½read-your-writeµÄÓïÒ壺

ͨ¹ý¶ÔÈÎÒ»Ò»¸ö½Úµã£¬ÔÚ²éѯʱЯ´øÆäдÈëʱµÄʱ¼ä´Á£¬·þÎñ²ãµÄ½ÚµãÊÕµ½´Ë²éѯ£¬Í¨¹ýºÍÆä±¾µØË÷Òý±È½Ïʱ¼ä´Á£¬Èç¹û±ØÒª£¬ÎªÁË·ÀÖ¹·µ»Ø¹ýÆÚµÄÀÏÊý¾Ý£¬ÍƳÙÇëÇóµÄÖ´ÐУ¬Ö±µ½´Ë·þÎñ½ÚµãµÄË÷Òýͬ²½¸úÉÏÁËʱ¼ä´Á¡£

·þÎñ²ãµÄ½Úµã£¬Ò²ÐíÐèÒª¡¢Ò²Ðí²»ÐèÒªÖªµÀleaderµÄ¸ÅÄî¡£Ôںܶà¼òµ¥µÄÓÃÀýÖУ¬·þÎñ²ã¿É²»¹¹½¨leader½Úµã£¬ÒòΪlog¾ÍÊÇÊÂʵµÄÀ´Ô´¡£

»¹ÓÐÒ»¸öÎÊÌ⣬ÈçºÎ´¦Àí½Úµãʧ°ÜºóµÄ»Ö¸´ÎÊÌâ¡£¿ÉÒÔÕâÑù×ö£¬ÔÚlogÖб£ÁôÒ»¸ö¹Ì¶¨´óСµÄʱ¼ä´°¿Ú£¬Í¬Ê±¶ÔÊý¾Ýά»¤¿ìÕÕ¡£Ò²¿ÉÒÔÈÃlog±£ÁôÊý¾ÝµÄ È«Á¿±¸·Ý²¢Ê¹ÓÃlogºÏ²¢¼¼ÊõÍê³Élog×ÔÉíµÄÀ¬»ø»ØÊÕ¡£ÕâÖÖ·½·¨£¬½«·þÎñ²ãµÄÖڶิÔÓÐÔÒÆÖÁlog²ã£¬ÒòΪ·þÎñ²ãÊÇϵͳÏà¹Ø£¨system- specific£©µÄ£¬¶ølog²ãÈ·¿ÉÒÔͨÓá£

»ùÓÚlogϵͳ£¬¿ÉÒÔÌṩһ×éÍ걸µÄ¡¢¹©¿ª·¢Ê¹Óõġ¢¿É×÷ΪÆäËüϵͳµÄETLÊý¾ÝÔ´¡¢²¢¹©ÆäËüϵͳ¶©ÔĵÄAPI¡£

Full Stack £¡£º

ÏÔÈ»£¬Ò»¸öÒÔlogΪºËÐĵķֲ¼Ê½ÏµÍ³£¬Æä±¾ÉíÁ¢¼´³ÉΪÁË¿É¶ÔÆäËüϵͳÌṩÊý¾Ý×°ÔØÖ§³Ö¼°Êý¾ÝÁ÷´¦ÀíµÄ½ÇÉ«¡£Í¬ÑùµÄ£¬Ò»¸öÁ÷´¦Àíϵͳ£¬Ò²¿ÉÒÔͬʱÏû·Ñ¶à¸öÊý¾ÝÁ÷£¬²¢Í¨¹ý¶ÔÕâЩÊý¾ÝÁ÷½øÐÐË÷ÒýÈ»ºóÊä³öµÄÁíÒ»¸öϵͳ£¬À´¶ÔÍâÌṩ·þÎñ¡£

»ùÓÚlog²ãºÍ·þÎñ²ãÀ´¹¹½¨ÏµÍ³£¬Ê¹µÃ²éѯÏà¹ØµÄÒòËØÓëϵͳµÄ¿ÉÓÃÐÔ¡¢Ò»ÖÂÐÔµÈÒòËØ½âñî¡£

Ò²ÐíºÜ¶àÈËÈÏΪÔÚlogÖÐά»¤Êý¾ÝµÄµ¥¶À±¸·Ý£¬ÌرðÊÇ×öÈ«Á¿Êý¾Ý¿½±´Ì«ÀË·Ñ¡¢Ì«Éݳޣ¬µ«ÊÂʵ²¢·ÇÈç´Ë£º

1£© linkedin£¨×¢£º2013Ä꣩µÄkafkaÉú²ú¼¯ÈºÎ¬»¤ÁËÿÊý¾ÝÖÐÐÄ75TBµÄÊý¾Ý£¬¶øÓ¦Óü¯ÈºÐèÒªµÄ´æ´¢¿Õ¼äºÍ´æ´¢Ìõ¼þ£¨SSD+¸ü¶àµÄÄڴ棩±Èkafka¼¯ÈºÒª¸ß¡£

2£© È«ÎÄËÑË÷µÄË÷Òý£¬×îºÃÈ«²¿×°ÈëÄڴ棬¶ølogsÒòΪ¶¼ÊÇÏßÐÔ¶Áд£¬ËùÒÔ¿ÉÒÔÀûÓÃÁ®¼ÛµÄ´óÈÝÁ¿´ÅÅÌ¡£

3£© ÒòΪkafka¼¯ÈºÊµ¼ÊÔË×÷ÔÚ¶à¸ö¶©ÔÄÕßµÄģʽ֮Ï£¬¶à¸öϵͳÏû·ÑÊý¾Ý£¬ËùÒÔlog¼¯ÈºµÄ¿ªÏú±»Ì¯»¹ÁË¡£

4£© ËùÓÐÒÔÉÏÔ­Òò£¬µ¼Ö»ùÓÚÍⲿlogϵͳ£¨kafka»òÕßÀàËÆÏµÍ³£©µÄ¿ªÏú±äµÃ·Ç³£Ð¡¡£

2.13 ½áÓï

Jay¸çÔÚ×îºó£¬²»½öºñµÀµØÁôÏÂÁ˺ܶàѧÊõ¡¢¹¤³ÌÉϵÄÓмÛÖµµÄÂÛÎĺͲο¼Á´½Ó£¬»¹ºÜǫѷµØÁôÏÂÁËÕâ¾ä»°£º

If you made it this far you know most of what I know about logs.

ÖÕ¡£

 

   
2848 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù


Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù