ŦԼʱ±¨ÓкܶàÄÚÈÝÉú³Éϵͳ£¬ÎÒÃÇʹÓõÚÈý·½Êý¾ÝÀ´±àд¹ÊÊ¡£ÁíÍ⣬ÎÒÃÇÓÐ161ÄêµÄÐÂÎÅÐÐÒµ»ýÀÛºÍ21ÄêµÄÔÚÏßÄÚÈÝ·¢²¼¾Ñ飬ËùÒÔ´óÁ¿µÄÔÚÏßÄÚÈÝÐèÒª±»ËÑË÷µ½£¬²¢Ìṩ¸ø²»Í¬µÄ·þÎñºÍÓ¦ÓÃʹÓá£
ÁíÒ»·½Ã棬Óкܶà·þÎñºÍÓ¦ÓÃÐèÒª·ÃÎʵ½ÕâЩÄÚÈÝ¡ª¡ªËÑË÷ÒýÇæ¡¢¸öÐÔ»¯¶¨ÖÆ·þÎñ¡¢ÐÂÎÅÖÖ×ÓÉú³ÉÆ÷£¬ÒÔ¼°ÆäËû¸÷ÖÖǰ¶ËÓ¦Óã¬ÈçÍøÕ¾ºÍÒÆ¶¯Ó¦Óá£Ò»µ©ÓÐÐÂÄÚÈÝ·¢²¼£¬¾ÍÒªÔں̵ܶÄʱ¼äÄÚÈÃÕâЩ·þÎñ·ÃÎʵ½£¬¶øÇÒ²»ÄÜÓÐÊý¾Ý¶ªÊ§¡ª¡ª±Ï¾¹ÕâЩÄÚÈݶ¼ÊÇÓмÛÖµµÄÐÂÎÅ¡£
ÔÚÕâÆªÎÄÕÂÀÎÒÃǽ«Ïêϸ½éÉÜÎÒÃÇÊÇÈçºÎ»ùÓÚApache Kafka½â¾öÉÏÊöÎÊÌâµÄ¡£ÎÒÃǰÑÕâ¸öϵͳ½Ð×ö·¢²¼¹ÜµÀ£¨Publishing
Pipeline£©¡£ÕâÆªÎÄÕÂÖ÷Òª¹Ø×¢ºó¶ËµÄϵͳ£¬ÎÒÃÇ»á½éÉÜÈçºÎʹÓÃKafka±£´æÅ¦Ô¼Ê±±¨µÄÎÄÕ£¬ÒÔ¼°ÈçºÎʹÓÃKafkaºÍSteams
API½«·¢²¼µÄÄÚÈÝÊµÊ±ÍÆË͸ø¸÷ÖÖÓ¦Óá£ÏÂÃæÊÇ×ÜÌåµÄ¼Ü¹¹Í¼£¬¾ßÌåϸ½ÚÉÔºóÏêÊö¡£

»ùÓÚAPI½â¾ö·½°¸µÄ²»×ãÖ®´¦
·ÃÎÊÒÑ·¢²¼ÄÚÈݵĺó¶ËϵͳÓÐן÷ÖÖ²»Í¬µÄÐèÇó¡£
ÎÒÃÇÓÐÒ»¸ö·þÎñרÃÅÎªÍøÕ¾ºÍÒÆ¶¯Ó¦ÓÃÌṩʵʱÄÚÈÝ£¬ËùÒÔÔÚÄÚÈÝ·¢²¼Ö®ºó£¬ËüÐèÒªÁ¢¼´·ÃÎʵ½ÕâЩÄÚÈÝ¡£
ÎÒÃÇ»¹ÓÐһЩ·þÎñÓÃÓÚÌṩÄÚÈÝÇåµ¥¡£ÓÐЩÇåµ¥ÊÇÊÖ¶¯±à¼µÄ£¬ÓÐЩÔòÊÇͨ¹ý²éѯ»ñµÃµÄ¡£¶ÔÓÚͨ¹ý²éѯ»ñµÃµÄÇåµ¥À´Ëµ£¬Ò»µ©ÓзûºÏ²éѯÌõ¼þµÄÄÚÈÝ·¢²¼£¬¾ÍÐèÒª±»°üº¬ÔÚÇåµ¥Àï¡£¶øÈç¹ûÒÑ·¢²¼µÄÄÚÈݾ¹ýÐ޸ĺó²»ÔÙ·ûºÏ²éѯÌõ¼þ£¬¾ÍÒª´ÓÇåµ¥ÀïÒÆ³ý¡£ÎÒÃÇ»¹ÒªÖ§³Ö¶Ô²éѯÌõ¼þ±¾Éí½øÐÐÐ޸쬱ÈÈç´´½¨ÐµÄÇåµ¥£¬¶øÒªÐ½¨Çåµ¥¾ÍÐèÒª·ÃÎÊ֮ǰ·¢²¼µÄÄÚÈÝ¡£
ÎÒÃǵÄElasticsearch¼¯ÈºÎªÍøÕ¾ÌṩÁËËÑË÷·þÎñ¡£ÎÒÃǶÔÑÓ³ÙûÓкܸߵÄÒªÇ󣬱ÈÈçÔÚÄÚÈÝ·¢²¼ºóµÄÒ»Á½·ÖÖÓÄÚËÑË÷²»µ½ÐÂÄÚÈݲ»ËãÊǸö´óÎÊÌâ¡£²»¹ý£¬ËÑË÷ÒýÇæÈÔȻҪ·ÃÎÊ֮ǰ·¢²¼µÄÄÚÈÝ£¬ÒòΪһµ©ElasticsearchµÄschema¶¨Òå·¢Éú±ä¸ü£¬»òÕßÐÞ¸ÄÁËËÑË÷ÉãÈ¡¹ÜµÀ£¬¾ÍÐèÒª¶ÔËùÓÐÄÚÈݽøÐÐÖØÐÂË÷Òý¡£
ÎÒÃÇ»¹ÓÐÒ»¸ö¸öÐÔ»¯¶¨ÖÆÏµÍ³£¬ËüÖ»¶Ô×îеÄÄÚÈݸÐÐËȤ¡£ÔÚ¸öÐÔ»¯¶¨ÖÆËã·¨·¢Éú±ä»¯ºó£¬ÐèÒªÖØÐ´¦ÀíÕâЩÄÚÈÝ¡£
ÔÚÒ»¿ªÊ¼£¬ÎÒÃÇΪÕâЩӦÓÃÌṩÁËAPI£¬ÈÃËüÃÇÖ±½Ó·ÃÎÊÒÑ·¢²¼µÄÄÚÈÝ£¬»òÕßÈÃËüÃǶ©ÔÄÖÖ×Ó£¬Ò»µ©ÓÐÐÂÄÚÈÝ·¢²¼£¬ËüÃǾͻáÊÕµ½Í¨Öª¡£

ÕâÖÖµäÐ͵ĻùÓÚAPIµÄ½â¾ö·½°¸´æÔںܶàÎÊÌâ¡£
²»Í¬µÄAPIÊÇÓɲ»Í¬µÄÍŶÓÔÚ²»Í¬µÄʱÆÚÒÔ²»Í¬µÄ·½Ê½¿ª·¢³öÀ´µÄ¡£¶Ëµã´æÔÚ²îÒ죬ÓïÒå´æÔÚ²îÒ죬ÉõÖÁÁ¬²ÎÊýÒ²´æÔÚ²îÒì¡£ËäÈ»ÎÒÃÇ¿ÉÒÔÊÔ×ÅÈ¥½â¾öÕâЩÎÊÌ⣬µ«ÄÇÐèҪе÷¸÷¸öÍŶӣ¬ºÄʱºÄÁ¦¡£
ÕâЩϵͳ¶¼¶¨ÒåÁË×Ô¼ºµÄschema£¬Í¬Ò»×Ö¶ÎÔÚ²»Í¬µÄϵͳÀï½Ð·¨²»Ò»Ñù£¬¶øÍ¬Ò»Ãû×ÖµÄ×Ö¶ÎÔÚ²»Í¬µÄϵͳÀï±íʾµÄÈ´ÊDz»Í¬µÄÒâ˼¡£
ÁíÒ»¸öÎÊÌâÊÇ£¬Òª·ÃÎʵ½Ö®Ç°·¢²¼µÄÄÚÈÝÊǺÜÀ§Äѵġ£´ó²¿·Öϵͳ²¢Ã»ÓÐÌṩÄÚÈÝÁ÷£¬ÒòΪËüÃÇʹÓõÄÊý¾Ý¿â²»Ö§³ÖÕâÒ»ÌØÐÔ¡£ËäÈ»ÄÚÈݶ¼±£´æÔÚÊý¾Ý¿âÀµ«´óÁ¿µÄAPIµ÷ÓÃÏ൱ºÄʱ£¬¶øÇÒ»á¸øAPI·þÎñ´øÀ´²»¿ÉÔ¤ÁϵĸºÔØ¡£
»ùÓÚÈÕÖ¾µÄ¼Ü¹¹
ÎÒÃǼ´½«½éÉܵÄÊÇÒ»ÖÖ»ùÓÚÈÕÖ¾µÄ¼Ü¹¹¡£Martin KleppmannÔÚ¡°Turning the database
inside-out with Apache Samza¡±ÖÐÌáµ½ÁËÕâÒ»¼Ü¹¹·½°¸£¬ºóÀ´ÔÚ¡°Designing
Data-Intensive Applications¡±ÖÐÓÐÁ˸üΪÏêϸµÄÃèÊö¡£¡°Log: What
every software engineer should know about real-time
data's unifying abstraction¡±ÔòÌáµ½Á˽«ÈÕÖ¾×÷ΪһÖÖͨÓõÄÊý¾Ý½á¹¹µÄ˵·¨¡£¶ÔÓÚÎÒÃÇÀ´Ëµ£¬ÎÒÃǵÄÈÕÖ¾¾ÍÊÇKafka£¬ËùÓз¢²¼µÄÄÚÈݰ´ÕÕʱ¼ä˳ÐòÌí¼Óµ½KafkaÖ÷ÌâÉÏ£¬ÆäËû·þÎñͨ¹ýÏû·ÑÈÕÖ¾À´·ÃÎÊÕâЩÄÚÈÝ¡£
´«Í³µÄÓ¦ÓÃʹÓÃÊý¾Ý¿â±£´æÊý¾Ý£¬¾¡¹ÜÊý¾Ý¿âÒ²ÓкܶàÓŵ㣬µ«´Ó³¤Ô¶À´¿´£¬¹ÜÀíÊý¾Ý¿â»á³ÉΪһÖÖ¸ºµ£¡£Ê×ÏÈ£¬±ä¸üÊý¾Ý¿âschema¾ÍºÜ¼¬ÊÖ¡£Ôö¼Ó»òÒÆ³ý×ֶβ¢²»ÄÑ£¬µ«ÕâЩ±ä¸üÐèÒªÒÔÔÝÍ£·þÎñΪ´ú¼Û¡£ÎÒÃÇÒ²ÎÞ·¨×ÔÓɵظü»»Êý¾Ý¿â¡£´ó²¿·ÖÊý¾Ý¿â²»Ö§³ÖÁ÷ʽ±ä¸ü£¬¾¡¹ÜÎÒÃÇ¿ÉÒÔ»ñµÃÊý¾Ý¿â¿ìÕÕ£¬µ«ÕâЩ¿ìÕպܿì¾Í»á¹ýʱ¡£Ò²¾ÍÊÇ˵£¬ÎÒÃÇÄÑÒÔ´´½¨ÑÜÉú´æ´¢£¬±ÈÈçËÑË÷ÒýÇæÊ¹ÓõÄË÷Òý£¬ÒòΪË÷ÒýÀï±ØÐë°üº¬ËùÓÐÎÄÕÂÄÚÈÝ£¬¶øÇÒÒ»µ©ÓÐÐÂÄÚÈÝ·¢²¼¾ÍÒªÖØ½¨Ë÷Òý¡£Ëä˵ÎÒÃÇ¿ÉÒÔÈÿͻ§¶Ëͬʱ½«ÄÚÈÝ·¢Ë͸ø¶à¸ö´æ´¢ÏµÍ³£¬µ«ÕâÑùÈÔÈ»ÎÞ·¨½â¾öÒ»ÖÂÐÔÎÊÌ⣬ÒòΪÓеÄдÈë»áʧ°Ü¡£
´Ó³¤Ô¶À´¿´£¬Êý¾Ý¿â×îÖÕ»á±ä³ÉÒ»¸ö¸´Ôӵĵ¥Ìå¡£
»ùÓÚÈÕÖ¾µÄ¼Ü¹¹¿ÉÒÔ½â¾öÕâЩÎÊÌâ¡£Ò»°ãÀ´Ëµ£¬Êý¾Ý¿â±£´æµÄÊÇʼþµÄ½á¹û»ò״̬£¬¶øÈÕÖ¾±£´æµÄÊÇʼþ±¾Éí¡£ÎÒÃÇ¿ÉÒÔ»ùÓÚÈÕÖ¾´´½¨ÈκÎÎÒÃÇÏëÒªµÄÊý¾Ý´æ´¢£¬ÕâЩÊý¾Ý´æ´¢¾ÍÊÇÈÕÖ¾µÄÎﻯÊÓͼ£¬ËüÃǰüº¬µÄÊÇÅÉÉúµÄÄÚÈÝ£¬¶ø·ÇÔʼÄÚÈÝ¡£Èç¹ûÒª¸ü¸ÄÊý¾Ý´æ´¢µÄschema£¬Ö»Òª´´½¨Ò»¸öеÄÊý¾Ý´æ´¢£¬È»ºó´ÓÍ·µ½Î²ÔÙÏû·ÑÒ»±éËùÓеÄÈÕÖ¾¾Í¿ÉÒÔÁË£¬È»ºó°Ñ¾ÉµÄÊý¾Ý´æ´¢ÈÓµô¡£
Ò»µ©Ê¹ÓÃÈÕÖ¾×÷ΪÊÂʵµÄÀ´Ô´£¬¾ÍûÓбØÒªÔÙʹÓÃÖÐÐÄÊý¾Ý¿âÁË¡£Ã¿Ò»¸öϵͳ¶¼¿ÉÒÔ´´½¨ÊôÓÚ×Ô¼ºµÄÊý¾Ý´æ´¢£¬»òÕß˵ÎﻯÊÓͼ£¬ËüÖ»°üº¬¸ÃϵͳËù±ØÐèµÄÊý¾Ý£¬¶øÇÒΪ¸ÃϵͳÌṩÁËÌØ¶¨µÄ¸ñʽ¡£Õâ¾Í¼ò»¯ÁËÊý¾Ý¿âÔڼܹ¹ÖеĽÇÉ«£¬¸üÌùºÏÿһ¸öÓ¦ÓõÄÐèÇó¡£
ÁíÍ⣬»ùÓÚÈÕÖ¾µÄ¼Ü¹¹Ò²¼ò»¯ÁË·ÃÎÊÄÚÈÝÁ÷µÄ·½Ê½¡£¶ÔÓÚ´«Í³µÄÊý¾Ý¿âÀ´Ëµ£¬·ÃÎÊÕû¸öÊý¾Ýת´¢£¨±ÈÈç¿ìÕÕ£©ºÍ·ÃÎÊ¡°ÊµÊ±¡±Êý¾Ý£¨±ÈÈçÖÖ×Ó£©ÊÇÁ½ÖÖ²»Ò»ÑùµÄ²Ù×÷¡£¶ø¶ÔÓÚÈÕÖ¾À´Ëµ£¬ËüÃDz¢²»´æÔÚ²î±ð¡£Äã¿ÉÒÔ´ÓÈÎÒâµÄÆ«ÒÆÁ¿´¦¿ªÊ¼Ïû·ÑÈÕÖ¾£¬´ÓÆðʼλÖÃÒ²ºÃ£¬´ÓÖм俪ʼҲºÃ£¬ÉõÖÁ´ÓĩβҲ¿ÉÒÔ¡£Ò²¾ÍÊÇ˵£¬Èç¹ûÄãÒªÖØÐ´´½¨Êý¾Ý´æ´¢£¬Ö»Òª¸ù¾ÝÐèÒªÖØÐÂÏû·ÑÈÕÖ¾¼´¿É¡£
»ùÓÚÈÕÖ¾¼Ü¹¹µÄϵͳÔÚ²¿Êð·½ÃæÒ²ÓкܶàÓÅÊÆ¡£ÔÚÐéÄâ»úÀï½øÐÐÎÞ״̬·þÎñµÄ²»±äģʽ²¿ÊðÒѾ³ÉΪһÖÖ³£¼ûµÄ·½Ê½¡£ÖØÐ²¿ÊðÕû¸öʵÀý¿ÉÒÔ±ÜÃâºÜ¶àÎÊÌâ¡£ÒòΪÓÐÁËÈÕÖ¾£¬ÎÒÃÇÏÖÔÚ¿ÉÒÔ½øÐÐÓÐ״̬ϵͳµÄ²»±äģʽ²¿Êð¡£ÒòΪÎÒÃÇ¿ÉÒÔ´ÓÈÕÖ¾ÖÐÖØÐ´´½¨Êý¾Ý´æ´¢£¬ËùÒÔÿ´ÎÔÚ²¿Êð±ä¸üµÄʱºò¶¼¿ÉÒÔ»ñµÃеÄÊý¾Ý´æ´¢¡£
ΪʲôGoogleµÄPubSub»òAWS SNS/SQS/KinesisÎÞ·¨½â¾öÕâЩÎÊÌâ
KafkaÒ»°ãÓÐÁ½ÖÖÓ¦Óó¡¾°¡£
Kafka³£±»ÓÃ×÷ÏûÏ¢´úÀí£¬ÓÃÓÚÊý¾Ý·ÖÎöºÍÊý¾Ý¼¯³É¡£KafkaÔÚÕâ·½ÃæÓкܶàÓÅÊÆ£¬²»¹ýGoogle
PubSub¡¢AWS SNS/SQS/KinesisÒ²Äܽâ¾öÕâЩµÄÎÊÌâ¡£ÕâЩ·þÎñ¶¼Ö§³Ö¶à¸öÏû·ÑÕߺͶà¸öÉú²úÕߣ¬¿ÉÒÔ¸ú×ÙÏû·ÑÕßµÄÏû·Ñ״̬£¬Ïû·ÑÕßÔÚå´»úµÄʱºò²»»á³öÏÖÊý¾Ý¶ªÊ§¡£ÔÚÕâЩ³¡¾°ÀÈÕÖ¾Ö»ÊÇÏûÏ¢´úÀíµÄÒ»ÖÖ¾ßÌåʵÏÖ¶øÒÑ¡£
µ«ÔÚ»ùÓÚÈÕÖ¾µÄ¼Ü¹¹ÀÇé¿ö¾Í²»Ò»ÑùÁË¡£Õâ¸öʱºòÈÕÖ¾¾Í²»Ö»Êǵ¥´¿µÄʵÏÖϸ½ÚÄÇô¼òµ¥ÁË£¬¶øÊDZä³ÉÁ˺ËÐŦÄÜ¡£ÎÒÃÇÓÐÒÔÏÂÁ½µãÐèÇó£º
ÎÒÃÇÐèҪͨ¹ýÈÕÖ¾ÓÀ¾ÃµØ±£ÁôËùÓÐʼþ£¬·ñÔò¾ÍÎÞ·¨ËæÒâ´´½¨ÎÒÃÇÐèÒªµÄÊý¾Ý´æ´¢¡£
ÎÒÃÇÐèÒª°´ÕÕÒ»¶¨Ë³ÐòÏû·ÑÈÕÖ¾£¬ÒòΪÂÒÐò´¦Àí¹ØÁªÐÔʼþ»áµÃµ½´íÎóµÄ½á¹û¡£
ĿǰҲֻÓÐKafkaÄܹ»Âú×ãÕâÁ½¸öÐèÇó¡£
Monolog
MonologÊÇÎÒÃǵÄÐÂÄÚÈÝ·¢²¼Ô´£¬ÆäËûϵͳ°Ñ´´½¨µÄÄÚÈÝÒÔ×·¼ÓµÄ·½Ê½Ð´µ½Monolog¡£´´½¨µÄÄÚÈÝÔÚ½øÈëMonologǰ»á¾¹ýÒ»¸öÍø¹Ø£¬Íø¹Ø»á¼ì²éÁ÷¾µÄÄÚÈÝÊÇ·ñ·ûºÏÎÒÃǶ¨ÒåµÄschema¡£

MonologÀï°üº¬ÁË×Ô1851ÄêÒÔÀ´·¢ÐеÄËùÓÐÄÚÈÝ£¬ËüÃǰ´ÕÕ·¢ÐÐʱ¼ä½øÐÐÅÅÐò¡£Ò²¾ÍÊÇ˵£¬Ïû·ÑÕß¿ÉÒÔ´ÓÈÎÒâʱ¼äµã¿ªÊ¼Ïû·ÑÕâЩÄÚÈÝ¡£Èç¹ûÐèÒªÏû·ÑËùÓеÄÄÚÈÝ£¬¾Í´ÓÍ·¿ªÊ¼£¨Ò²¾ÍÊÇ´Ó1851Ä꿪ʼ£©£¬»òÕ߸ù¾ÝÐèÒªÖ»Ïû·ÑÄÇЩ¸üйýµÄ²¿·Ö¡£
¾Ù¸öÀý×Ó£¬ÎÒÃÇÓÐÒ»¸ö·þÎñ¸ºÔðÌṩÄÚÈÝÇåµ¥£¬±ÈÈçij¸ö×÷Õß·¢²¼¹ýµÄÄÚÈÝ¡¢Óëij¸ö¿ÆÑ§Ö÷ÌâÏà¹ØµÄÄÚÈÝ£¬µÈµÈ¡£Õâ¸ö·þÎñ»á´ÓÆðʼλÖÿªÊ¼Ïû·ÑMonolog£¬È»ºó¹¹½¨ÄÚÈÝÇåµ¥¡£ÎÒÃÇ»¹ÓÐÁíÍâÒ»¸ö·þÎñ£¬ËüÖ»Ìṩ×îз¢²¼µÄÄÚÈÝÇåµ¥£¬ËùÒÔËü²»ÐèÒªÓÀ¾ÃµÄÊý¾Ý´æ´¢£¬ËüÖ»ÐèÒª¹ýÈ¥¼¸¸öСʱµÄÈÕÖ¾Êý¾Ý¡£Ëü»áÔÚÆô¶¯µÄʱºòÏû·Ñ×î½ü¼¸¸öСʱµÄÈÕÖ¾£¬²¢ÔÚÄÚ´æÀïά»¤Ò»¸ö×îÐÂÄÚÈݵÄÇåµ¥¡£
ÎÒÃǰ´Õչ淶»¯ÐÎʽ½«ÄÚÈÝ·¢Ë͸øMonolog£¬Ã¿Ò»²¿·ÖÄÚÈݶ¼±»µ±³ÉÒ»¸öµ¥¶ÀµÄÏûϢдÈëKafka¡£ÀýÈ磬ͼƬºÍÎÄÕÂÊÇ·Ö¿ª·¢Ë͵ģ¬ÒòΪ¶àƪ²»Í¬µÄÎÄÕ¿ÉÄܰüº¬Í¬Ò»ÕÅͼƬ¡£

ÕâÓë¹ØÏµÐÍÊý¾Ý¿âÀïµÄ¹æ·¶»¯Ä£ÐͺÜÏàËÆ£¬Í¼Æ¬ÓëÎÄÕÂÖ®¼äÊǶà¶Ô¶à¹ØÏµ¡£
ÔÚÉÏÒ»Àý×ÓÖУ¬ÎÒÃÇÓÐÁ½ÆªÎÄÕÂÒýÓÃÁËÆäËûÄÚÈÝ¡£ÀýÈ磬±êÌâÐÐÊǵ¥¶À·¢²¼µÄ£¬È»ºóÓÖ±»ÆäËûÁ½ÆªÎÄÕÂÒýÓá£ËùÓеÄÄÚÈݶ¼Ê¹ÓÃnyt://article/577d0341-9a0a-46df-b454-ea0718026d30ÕâÖÖ¸ñʽµÄURIÀ´±êʶ¡£ÎÒÃÇÓÐÒ»¸öÔÉúä¯ÀÀÆ÷¿ÉÒԲ鿴ÕâЩURI£¬Ö»Òªµ¥»÷ÕâЩURI¾Í¿ÉÒÔ¿´µ½ËüÃǵÄJSON±íʾ£¬¶øÄÚÈݱ¾ÉíÔòÒÔprotobuf¸ñʽ±£´æÔÚMonologÉÏ¡£
Monologʵ¼ÊÉÏÊÇKafkaÉϵÄÒ»¸öÖ÷Ì⣬ËüÖ»°üº¬Ò»¸ö·ÖÇø£¬ÒòΪÎÒÃÇÏëÒª±£³ÖÏûÏ¢µÄÈ«¾Ö˳Ðò¡£ÕâÑù¿ÉÒÔ±£Ö¤¶¥²ãÄÚÈݵÄÄÚ²¿Ò»ÖÂÐÔ¡ª¡ªÈç¹ûÎÒÃÇÔÚһƪÎÄÕÂÀïÌí¼ÓÁËÒ»ÕÅͼƬ£¬Í¬Ê±ÓÖÌí¼ÓÁËһЩÎÄ×Ö£¬ÕâЩÎÄ×ÖÒýÓÃÁËÕâÕÅͼƬ£¬ÄÇôÎÒÃǾÍҪȷ±£Í¼Æ¬µÄλÖÃÓ¦¸ÃÔÚÐÂÔöÎÄ×Ö֮ǰ¡£
ʵ¼ÊÉÏ£¬ÄÚÈÝÊǰ´ÕÕÍØÆËµÄ·½Ê½½øÐÐÅÅÐòµÄ£¬ÈçÏÂͼËùʾ¡£

ÒòΪÖ÷ÌâÖ»°üº¬ÁËÒ»¸ö·ÖÇø£¬ËùÒÔËùÓÐÄÚÈݶ¼±£´æÔÚͬһ¸ö´ÅÅÌÉÏ£¨KafkaµÄ´æ´¢»úÖÆ¾ÍÊÇÕâÑùµÄ£©¡£²»¹ýÕâ¶ÔÓÚÎÒÃÇÀ´Ëµ²»ÊÇÎÊÌ⣬ÒòΪÎÒÃÇËùÓеÄÄÚÈݶ¼ÊÇÎÄ×Ö£¬µ½ÏÖÔÚ×ÜÁ¿¶¼Ã»³¬¹ý100GB¡£
¹æ·¶»¯ÈÕÖ¾ºÍKafka Streams API
MonologÂú×ãÁ˲¿·ÖÓ¦ÓóÌÐòµÄÐèÇó£¬ÕâЩӦÓÃÐèÒª¹æ·¶»¯µÄÊý¾ÝÊÓͼ£¬µ«¶ÔÓÚÆäËûһЩӦÓóÌÐòÀ´Ëµ¾Í²»ÊÇÕâô»ØÊÂÁË¡£±ÈÈ磬ΪÁ˽«Êý¾ÝË÷ÒýÖÁElasticsearch£¬¾ÍÐèÒª·Ç¹æ·¶»¯µÄÊý¾Ý£¬ÒòΪElasticsearch²»Ö§³Ö¶à¶Ô¶àµÄ¹ØÏµÓ³Éä¡£Èç¹ûҪͨ¹ýͼƬ˵Ã÷À´ËÑË÷ÎÄÕ£¬ÕâЩͼƬµÄ˵Ã÷ÐÔÎÄ×־ͱØÐë±»°üº¬ÔÚÎÄÕ¶ÔÏóÀï¡£
ΪÁËÖ§³ÖÕâÖÖÊý¾ÝÊÓͼ£¬ÎÒÃÇÒ²×¼±¸ÁËÒ»Ì׷ǹ淶»¯µÄÈÕÖ¾¡£ÔÚÕâЩÈÕÖ¾À¶¥²ãµÄÄÚÈݼ°ÆäËùÓÐÒÀÀµÏî¶¼±»´ò°ü·¢²¼¡£ÀýÈ磬ÔÚ·¢²¼Article
1µÄʱºò£¬ÈÕÖ¾ÏûÏ¢Àï²»½ö°üº¬ÁËÕâÆªÎÄÕ£¬Ò²°üº¬ÁËÏà¹ØµÄͼƬºÍ±êÇ©¡£

KafkaÏû·ÑÕ߿ͻ§¶Ë´ÓÈÕÖ¾ÀïÏû·ÑÏûÏ¢£¬ÔÙÌí¼Óµ½ElasticsearchË÷ÒýÀï¡£ÔÚ·¢²¼Ariticle
2µÄʱºò£¬ÕâÆªÎÄÕµÄËùÓÐÏà¹ØÄÚÈÝÒ²»á±»´ò°üÔÚÒ»Æð£¬¼´Ê¹ÓÐЩͼƬ¿ÉÄÜÒѾÔÚAriticle 1Àï³öÏÖ¹ý¡£

Èç¹ûÎÄÕµÄÒÀÀµÏî·¢Éú±ä»¯£¬ÕûƪÄÚÈÝ¾Í»á±»ÖØÐ·¢²¼¡£±ÈÈ磬Èç¹û¸üÐÂÁËImage 2£¬ÄÇôArticle
1¾Í»áÔٴα»Ìí¼Óµ½ÈÕÖ¾Àï¡£

ÎÒÃÇʹÓÃÒ»¸ö½Ð×÷DenormalizerµÄ×é¼þÀ´´´½¨·Ç¹æ·¶»¯ÈÕÖ¾¡£
DenormalizerÊÇÒ»¸öʹÓÃÁËKafka Streams APIµÄJavaÓ¦ÓóÌÐò¡£ËüÏû·ÑMonologµÄÏûÏ¢£¬²¢ÔÚ±¾µØÎªÃ¿Ò»ÆªÎÄÕ±£ÁôÁËÒ»·Ý×îеİ汾£¬°üÀ¨¶ÔÎÄÕµÄÒýÓá£Ëæ×ÅÄÚÈݲ»¶ÏµØ·¢²¼ºÍ¸üУ¬±¾µØ´æ´¢Ò²»á³ÖÐø¸üС£Ò»µ©Óж¥²ãÄÚÈÝ·¢²¼£¬Denormalizer¾Í»á´Ó±¾µØ´æ´¢ÖÐÊÕ¼¯ËùÓеÄÒÀÀµÏ°ÑËüÃÇ´ò°üдµ½·Ç¹æ·¶»¯ÈÕÖ¾ÖС£Èç¹ûij¸ö¶¥²ãÄÚÈݵÄÒÀÀµÏî·¢ÉúÁ˱仯£¬Denormalizer¾Í»áÖØÐ·¢²¼Õû¸ö°ü¡£
·Ç¹æ·¶»¯ÈÕÖ¾²»ÐèҪȫ¾ÖµÄ˳Ðò±£Ö¤£¬ÎÒÃÇֻҪȷ±£Í¬Ò»ÆªÎÄÕµIJ»Í¬°æ±¾Êǰ´ÕÕÒ»¶¨Ë³ÐòдÈëÈÕÖ¾¾Í¿ÉÒÔÁË¡£ËùÒÔÎÒÃÇ¿ÉÒÔʹÓ÷ÖÇø£¬Èöà¸öÏû·ÑÕßͬʱÏû·ÑÕâЩ·ÖÇø¡£
ElasticsearchʾÀý
ÏÂͼչʾÁËÎÒÃǹ¹½¨µÄºó¶ËËÑË÷·þÎñ£¬ÎÒÃÇʹÓÃÁËElasticsearch¡£

Õû¸öÊý¾ÝÁ÷³ÌÊÇÕâÑùµÄ¡£
CMS·¢²¼»ò¸üÐÂÄÚÈÝ¡£
ÄÚÈÝÒÔprotobuf¶þ½øÖƵķ½Ê½·¢Ë͵½Íø¹Ø¡£
Íø¹ØÑéÖ¤ÄÚÈÝ£¬²¢°ÑËüдÈëMonolog¡£
Denormalizer´ÓMonologÏû·ÑÈÕÖ¾£¬Èç¹ûÊǶ¥²ãÄÚÈÝ£¬¾Í´Ó±¾µØ´æ´¢ÖÐÊÕ¼¯ËùÓÐÒÀÀµÏÔÙ´ò°üдÈë·Ç¹æ·¶»¯ÈÕÖ¾ÖС£Èç¹ûÊDZ»ÒýÓõÄÄÚÈÝ£¬ÄÇôËùÓÐÓëÖ®Ïà¹ØµÄ¶¥²ãÄÚÈÝÒ²»á±»Ð´Èë·Ç¹æ·¶»¯ÈÕÖ¾¡£
Kafka·ÖÇøÆ÷¸ù¾Ý¶¥²ãÄÚÈݵÄURIÀ´·ÖÇø¡£
ËùÓеÄËÑË÷½Úµãͨ¹ýµ÷ÓÃKafka Streams APIÀ´·ÃÎʷǹ淶»¯ÈÕÖ¾£¬Ã¿¸ö½Úµã¶Áȡһ¸ö·ÖÇø£¬°ÑÏûÏ¢°ü×°³ÉJSON¶ÔÏó£¬ÔÙÌí¼Óµ½ElasticsearchË÷ÒýÀ×îºóÔÙдµ½Ö¸¶¨µÄElasticsearch½ÚµãÉÏ¡£ÔÚ½øÐÐË÷ÒýÖØ½¨µÄʱºò£¬ÎÒÃǰѸ´Öƹ¦Äܹرգ¬ÕâÑù¿ÉÒÔ¼Ó¿ìË÷ÒýËÙ¶È£¬ÔÚ¹¹½¨ºÃË÷ÒýºóÔٰѸ´Öƹ¦ÄÜ´ò¿ª¡£
ʵÏÖ
ÎÒÃǵķ¢²¼¹ÜµÀ²¿ÊðÔÚGoogle Cloud PlatformÉÏ¡£ÎÒ²»´òËãÔÚÕâÆªÎÄÕÂÀïÃèÊö¾ßÌåµÄϸ½Ú£¬²»¹ýÏÂͼ¸ø³öÁËËüµÄÕûÌå¼Ü¹¹Çé¿ö¡£ÎÒÃÇÔÚGCP
ComputeÉÏÔËÐÐKafkaºÍZooKeeper£¬ÆäËûµÄ×é¼þ¡ª¡ªÍø¹Ø¡¢Kafka¸±±¾½ÚµãºÍDenormalizerÔòÔËÐÐÔÚÈÝÆ÷Àï¡£ÎÒÃÇʹÓÃÁË»ùÓÚgRPCºÍCloud
EndpointµÄAPI£¬²¢Ê¹ÓÃSSLÈÏÖ¤ºÍÊÚȨȷ±£KafkaµÄ°²È«¡£

½áÂÛ
ÎÒÃÇ»¨Á˽«½üÒ»Äêʱ¼äÔÚÎÒÃǵÄмܹ¹ÉÏ£¬ÏÖÔÚËüÒѾÔËÐÐÔÚÉú²ú»·¾³ÖС£²»¹ýÏÖÔÚ»¹Ö»ÊǸö¿ªÊ¼£¬ÎÒÃÇ»¹ÓкܶàÆäËûϵͳҲÐèÒªÇ¨ÒÆµ½Õâ¸ö¼Ü¹¹Àмܹ¹ÓкܶàÓÅÊÆ£¬µ«Õâ¶ÔÓÚ¿ª·¢ÕßÀ´ËµÒ²ÊÇÒ»´ÎÖØ´óµÄ˼άת±ä£¬ËûÃÇÐèÒª´Ó´«Í³Êý¾Ý¿âºÍ·¢²¼¶©ÔÄÄ£ÐÍתÏòеÄÊý¾ÝÁ÷Ä£ÐÍ¡£ÎªÁËÈÃÕâЩÓÅÊÆ·¢Ñï¹â´ó£¬ÎÒÃÇÐèÒª¸Ä±äÎÒÃǵĿª·¢·½Ê½£¬»¹Òª»¨ºÜ¶à¾«Á¦¹¹½¨¹¤¾ßºÍ»ù´¡ÉèÊ©£¬Èÿª·¢±äµÃ¸ü¼òµ¥¡£ |