±à¼ÍƼö: |
±¾ÎÄÊ×ÏȽéÉÜÁËÖªºõ³¤Á¬½ÓÍø¹ØµÄÒµÎñÊý¾Ý½âñî¡¢ÏûÏ¢¸ßЧ·Ö·¢¡¢½â¾öÈÝÁ¿ÎÊÌ⣬ͬʱ·ÖÎöÁËÏûÏ¢¿É¿¿ÐÔ±£Ö¤£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚinfoq£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼ÍƼö¡£ |
|
ʵʱµÄÏìÓ¦×ÜÊÇÈÃÈËÐ˷ܵ쬾ÍÈçÄãÔÚ΢ÐÅÀï¿´µ½¶Ô·½ÕýÔÚÊäÈ룬ÈçÄãÔÚÍõÕßÏ¿¹ÈÀïÒ»ºô°ÙÓ¦£¬ÈçÄãÃÇÔÚÖ±²¥µ¯Ä»Àï²»Ô¼¶øÍ¬µÄ
666£¬ËüÃǵı³ºó¶¼Àë²»¿ª³¤Á¬½Ó¼¼ÊõµÄ¼Ó³Ö¡£
ÿ¸ö»¥ÁªÍø¹«Ë¾ÀXºõ¶¼ÓÐÒ»Ì׳¤Á¬½Óϵͳ£¬ËüÃDZ»Ó¦ÓÃÔÚÏûÏ¢ÌáÐÑ¡¢¼´Ê±Í¨Ñ¶¡¢ÍÆËÍ¡¢Ö±²¥µ¯Ä»¡¢ÓÎÏ·¡¢¹²Ïí¶¨Î»¡¢¹ÉƱÐÐÇéµÈµÈ³¡¾°¡£¶øµ±¹«Ë¾·¢Õ¹µ½Ò»¶¨¹æÄ££¬ÒµÎñ³¡¾°±äµÃ¸ü¸´ÔӺ󣬸üÓпÉÄÜÊǶà¸öÒµÎñ¶¼ÐèҪͬʱʹÓó¤Á¬½Óϵͳ¡£
ÒµÎñ¼ä·Ö¿ªÉè¼Æ³¤Á¬½Ó»áµ¼ÖÂÑз¢ºÍά»¤³É±¾¶¸Ôö¡¢ÀË·Ñ»ù´¡ÉèÊ©¡¢Ôö¼Ó¿Í»§¶ËºÄµç¡¢ÎÞ·¨¸´ÓÃÒÑÓоÑéµÈµÈÎÊÌâ¡£¹²Ïí³¤Á¬½ÓϵͳÓÖÐèҪе÷ºÃ²»Í¬ÏµÍ³¼äµÄÈÏÖ¤¡¢¼øÈ¨¡¢Êý¾Ý¸ôÀë¡¢ÐÒéÍØÕ¹¡¢ÏûÏ¢ËÍ´ï±£Ö¤µÈµÈÐèÇ󣬵ü´ú¹ý³ÌÖÐÐÒéÐèÒªÏòǰ¼æÈÝ£¬Í¬Ê±ÒòΪ²»Í¬ÒµÎñµÄ³¤Á¬½Ó»ã¾Ûµ½Ò»¸öϵͳµ¼ÖÂÈÝÁ¿¹ÜÀíµÄÄѶÈÒ²»áÔö´ó¡£
¾¹ýÁËÒ»Äê¶àµÄ¿ª·¢ºÍÑݽø£¬¾¹ýÎÒÃÇ·þÎñÃæÏòÄÚºÍÍâµÄÊý¸ö App¡¢½ÓÈëÊ®¼¸¸öÐèÇóºÍÐÎ̬¸÷ÒìµÄ³¤Á¬½ÓÒµÎñ¡¢Êý°ÙÍòÉ豸ͬʱÔÚÏß¡¢Í»·¢´ó¹æÄ£ÏûÏ¢·¢Ë͵ȵȳ¡¾°µÄ´¸Á¶£¬ÎÒÃÇÌáÁ¶³öÒ»¸ö³¤Á¬½ÓÏµÍ³Íø¹ØµÄͨÓýâ¾ö·½°¸£¬½â¾öÁ˶àÒµÎñ¹²Óó¤Á¬½ÓʱÓöµ½µÄÖÖÖÖÎÊÌâ¡£
ÎÒÃÇÔõôÉè¼ÆÍ¨Ñ¶ÐÒ飿
ÒµÎñ½âñî
Ö§³Å¶àÒµÎñµÄ³¤Á¬½ÓÍø¹ØÊµ¼ÊÉÏÊÇͬʱ¶Ô½Ó¶à¿Í»§¶ËºÍ¶àÒµÎñºó¶ËµÄ£¬ÊǶà¶Ô¶àµÄ¹ØÏµ£¬ËûÃÇÖ®¼äֻʹÓÃÒ»Ìõ³¤Á¬½ÓͨѶ¡£

ÕâÖÖ¶à¶Ô¶àµÄϵͳÔÚÉè¼ÆÊ±Òª±ÜÃâÇ¿ñîºÏ¡£ÒµÎñ·½Âß¼Ò²Êǻᶯ̬µ÷ÕûµÄ£¬Èç¹û½«ÒµÎñµÄÐÒéºÍÂß¼ÓëÍø¹ØÊµÏÖñîºÏ»áµ¼ÖÂËùÓеÄÒµÎñ¶¼»á»¥ÏàÇ£Á¬£¬ÐÒéÉý¼¶ºÍά»¤¶¼»áÒì³£À§ÄÑ¡£
ËùÒÔÎÒÃdz¢ÊÔʹÓþµäµÄ·¢²¼¶©ÔÄÄ£ÐÍÀ´½âñÁ¬½ÓÍø¹Ø¸ú¿Í»§¶ËÓëÒµÎñºó¶Ë£¬ËüÃÇÖ®¼äÖ»ÐèÒªÔ¼¶¨
Topic ¼´¿É×ÔÓÉ»¥Ïà·¢²¼¶©ÔÄÏûÏ¢¡£´«ÊäµÄÏûÏ¢ÊÇ´¿¶þ½øÖÆÊý¾Ý£¬Íø¹ØÒ²ÎÞÐè¹ØÐÄÒµÎñ·½µÄ¾ßÌåÐÒ鹿·¶ºÍÐòÁл¯·½Ê½¡£

ȨÏÞ¿ØÖÆ
ÎÒÃÇʹÓ÷¢²¼¶©ÔĽâñîÁËÍø¹ØÓëÒµÎñ·½µÄʵÏÖ£¬ÎÒÃÇÈÔÈ»ÐèÒª¿ØÖƿͻ§¶Ë¶Ô Topic µÄ·¢²¼¶©ÔĵÄȨÏÞ£¬±ÜÃâÓÐÒâ»òÎÞÒâµÄÊý¾ÝÎÛȾ»òԽȨ·ÃÎÊ¡£
¼ÙÈ署ʦÕýÔÚÖªºõ Live µÄ 165218 ƵµÀ¿ª½²£¬µ±¿Í»§¶Ë½øÈë·¿¼ä³¢ÊÔ¶©ÔÄ 165218 ƵµÀµÄ
Topic ʱ¾ÍÐèÒªÖªºõ Live µÄºó¶ËÅжϵ±Ç°Óû§ÊÇ·ñÒѾ¸¶·Ñ¡£ÕâÖÖÇé¿öϵÄȨÏÞʵ¼ÊÉÏÊǺÜÁé»îµÄ£¬µ±Óû§¸¶·ÑÒÔºó¾ÍÄܶ©ÔÄ£¬·ñÔò¾Í²»Äܶ©ÔÄ¡£È¨ÏÞµÄ״ֻ̬ÓÐÖªºõ
Live ÒµÎñºó¶ËÖªÏþ£¬Íø¹ØÎÞ·¨¶ÀÁ¢×÷³öÅжϡ£
ËùÒÔÎÒÃÇÔÚ ACL ¹æÔòÖÐÉè¼ÆÁË»ùÓڻص÷µÄ¼øÈ¨»úÖÆ£¬¿ÉÒÔÅäÖà Live
Ïà¹Ø Topic µÄ¶©Ôĺͷ¢²¼¶¯×÷¶¼Í¨¹ý HTTP »Øµ÷¸ø Live µÄºó¶Ë·þÎñÅжϡ£

ͬʱ¸ù¾ÝÎÒÃǶÔÄÚ²¿ÒµÎñµÄ¹Û²ì£¬´ó²¿·Ö³¡¾°ÏÂÒµÎñÐèÒªµÄÖ»ÊÇÒ»¸öµ±Ç°Óû§µÄ˽ÓÐ
Topic ÓÃÀ´½ÓÊÕ·þÎñ¶ËÏ·¢µÄ֪ͨ»òÏûÏ¢£¬ÕâÖÖÇé¿öÏÂÈç¹ûÈÃÒµÎñ¶¼Éè¼Æ»Øµ÷½Ó¿ÚÀ´ÅжÏȨÏÞ»áºÜ·±Ëö¡£
ËùÒÔÎÒÃÇÔÚ ACL ¹æÔòÖÐÉè¼ÆÁËTopic Ä£°å±äÁ¿À´½µµÍÒµÎñ·½µÄ½ÓÈë³É±¾£¬ÎÒÃǸøÒµÎñ·½ÅäÖÃÔÊÐí¶©ÔĵÄ
Topic Öаüº¬Á¬½ÓµÄÓû§Ãû±äÁ¿±êʶ£¬±íʾֻÔÊÐíÓû§¶©ÔÄ»ò·¢ËÍÏûÏ¢µ½×Ô¼ºµÄ Topic¡£

´ËÊ±Íø¹Ø¿ÉÒÔÔÚ²»¸úÒµÎñ·½Í¨ÐŵÄÇé¿öÏ£¬¶ÀÁ¢¿ìËÙÅжϿͻ§¶ËÊÇ·ñÓÐȨÏÞ¶©ÔÄ»òÍù
Topic ·¢ËÍÏûÏ¢¡£
ÏûÏ¢¿É¿¿ÐÔ±£Ö¤
Íø¹Ø×÷ΪÏûÏ¢´«ÊäµÄÊàŦ£¬Í¬Ê±¶Ô½ÓÒµÎñºó¶ËºÍ¿Í»§¶Ë£¬ÔÚת·¢ÏûϢʱÐèÒª±£Ö¤ÏûÏ¢ÔÚ´«Êä¹ý³ÌµÄ¿É¿¿ÐÔ¡£
TCP Ö»Äܱ£Ö¤ÁË´«Êä¹ý³ÌÖеÄ˳ÐòºÍ¿É¿¿ÐÔ£¬µ«Óöµ½ TCP ״̬Òì³£¡¢¿Í»§¶Ë½ÓÊÕÂß¼Òì³£»ò·¢ÉúÁË
Crash µÈµÈÇé¿öʱ£¬´«ÊäÖеÄÏûÏ¢¾Í»á·¢Éú¶ªÊ§¡£
ΪÁ˱£Ö¤Ï·¢»òÉÏÐеÄÏûÏ¢±»¶Ô¶ËÕý³£´¦Àí£¬ÎÒÃÇʵÏÖÁË»ØÖ´ºÍÖØ´«µÄ¹¦ÄÜ¡£ÖØÒªÒµÎñµÄÏûÏ¢ÔÚ¿Í»§¶ËÊÕµ½²¢ÕýÈ·´¦ÀíºóÐèÒª·¢ËÍ»ØÖ´£¬¶øÍø¹ØÄÚÔÝʱ±£´æ¿Í»§¶ËδÊÕÈ¡µÄÏûÏ¢£¬Íø¹Ø»áÅжϿͻ§¶ËµÄ½ÓÊÕÇé¿ö²¢³¢ÊÔÔٴη¢ËÍ£¬Ö±µ½ÕýÈ·ÊÕµ½Á˿ͻ§¶ËµÄÏûÏ¢»ØÖ´¡£

¶øÃæ¶Ô·þÎñ¶ËÒµÎñµÄ´óÁ÷Á¿³¡¾°£¬·þÎñ¶Ë·¢¸øÍø¹ØµÄÿÌõÏûÏ¢¶¼·¢ËÍ»ØÖ´µÄ·½Ê½Ð§Âʽϵͣ¬ÎÒÃÇÒ²ÌṩÁË»ùÓÚÏûÏ¢¶ÓÁеĽÓÊպͷ¢ËÍ·½Ê½£¬ºóÃæ½éÉÜ·¢²¼¶©ÔÄʵÏÖʱÔÙÏêϸ²ûÊö¡£
ÔÚÉè¼ÆÍ¨Ñ¶ÐÒéʱÎÒÃDzο¼ÁË MQTT ¹æ·¶£¬ÍØÕ¹ÁËÈÏÖ¤ºÍ¼øÈ¨Éè¼Æ£¬Íê³ÉÁËÒµÎñÏûÏ¢µÄ¸ôÀëÓë½âñ±£Ö¤ÁËÒ»¶¨³Ì¶ÈµÄ´«Êä¿É¿¿ÐÔ¡£Í¬Ê±±£³ÖÁËÓë
MQTT ÐÒéÒ»¶¨³Ì¶ÈÉϼæÈÝ£¬ÕâÑù±ãÓÚÎÒÃÇÖ±½ÓʹÓà MQTT µÄ¸÷¶Ë¿Í»§¶ËʵÏÖ£¬½µµÍÒµÎñ·½½ÓÈë³É±¾¡£
ÎÒÃÇÔõôÉè¼ÆÏµÍ³¼Ü¹¹£¿
ÔÚÉè¼ÆÏîÄ¿ÕûÌå¼Ü¹¹Ê±£¬ÎÒÃÇÓÅÏÈ¿¼ÂǵÄÊÇ£º
1.¿É¿¿ÐÔ
2.ˮƽÀ©Õ¹ÄÜÁ¦
3.ÒÀÀµ×é¼þ³ÉÊì¶È
¼òµ¥²ÅÖµµÃÐÅÀµ¡£
ΪÁ˱£Ö¤¿É¿¿ÐÔ£¬ÎÒÃÇûÓп¼ÂÇÏñ´«Í³³¤Á¬½ÓϵͳÄÇÑù½«ÄÚ²¿Êý¾Ý´æ´¢¡¢¼ÆËã¡¢ÏûϢ·ÓɵȵÈ×é¼þÈ«²¿¼¯Öе½Ò»¸ö´óµÄ·Ö²¼Ê½ÏµÍ³ÖÐά»¤£¬ÕâÑùÔö´óϵͳʵÏÖºÍά»¤µÄ¸´ÔÓ¶È¡£ÎÒÃdz¢ÊÔ½«Õ⼸²¿·ÖµÄ×é¼þ¶ÀÁ¢³öÀ´£¬½«´æ´¢¡¢ÏûϢ·Óɽ»¸ø×¨ÒµµÄϵͳÍê³É£¬ÈÃÿ¸ö×é¼þµÄ¹¦Äܾ¡Á¿µ¥Ò»ÇÒÇåÎú¡£
ͬʱÎÒÃÇÒ²ÐèÒª¿ìËÙµØË®Æ½À©Õ¹ÄÜÁ¦¡£»¥ÁªÍø³¡¾°Ï¸÷ÖÖÓªÏú»î¶¯¶¼¿ÉÄܵ¼ÖÂÁ¬½ÓÊý¶¸Ôö£¬Í¬Ê±·¢²¼¶©ÔÄÄ£ÐÍϵͳÖÐÏ·¢ÏûÏ¢Êý»áËæ×Å
Topic µÄ¶©ÔÄÕߵĸöÊýÏßÐÔÔö³¤£¬´ËÊ±Íø¹ØÔÝ´æµÄ¿Í»§¶Ëδ½ÓÊÕÏûÏ¢µÄ´æ´¢Ñ¹Á¦Ò²±¶Ôö¡£½«¸÷¸ö×é¼þ²ð¿ªºó¼õÉÙÁ˽ø³ÌÄÚ²¿×´Ì¬£¬ÎÒÃǾͿÉÒÔ½«·þÎñ²¿Êðµ½ÈÝÆ÷ÖУ¬ÀûÓÃÈÝÆ÷À´Íê³É¿ìËÙ¶øÇÒ¼¸ºõÎÞÏÞÖÆµÄˮƽÀ©Õ¹¡£
×îÖÕÉè¼ÆµÄϵͳ¼Ü¹¹ÈçÏÂͼ£º

ϵͳÖ÷ÒªÓÉËĸöÖ÷Òª×é¼þ×é³É£º
½ÓÈë²ãʹÓà OpenResty ʵÏÖ£¬¸ºÔðÁ¬½Ó¸ºÔؾùºâºÍ»á»°±£³Ö
³¤Á¬½Ó Broker£¬²¿ÊðÔÚÈÝÆ÷ÖУ¬¸ºÔðÐÒé½âÎö¡¢ÈÏÖ¤Óë¼øÈ¨¡¢»á»°¡¢·¢²¼¶©ÔĵÈÂß¼
Redis ´æ´¢£¬³Ö¾Ã»¯»á»°Êý¾Ý
Kafka ÏûÏ¢¶ÓÁУ¬·Ö·¢ÏûÏ¢¸ø Broker »òÒµÎñ·½
ÆäÖÐ Kafka ºÍ Redis ¶¼ÊÇÒµ½ç¹ã·ºÊ¹ÓõĻù´¡×é¼þ£¬ËüÃÇÔÚÖªºõ¶¼ÒÑÆ½Ì¨»¯ºÍÈÝÆ÷»¯ ( Redis
at Zhihu ¡¢Öªºõ»ùÓÚ Kubernetes µÄ Kafka ƽ̨µÄÉè¼ÆºÍʵÏÖ)£¬ËüÃÇÒ²¶¼ÄÜÍê³É·ÖÖÓ¼¶¿ìËÙÀ©ÈÝ¡£
ÎÒÃÇÈçºÎ¹¹½¨³¤Á¬½ÓÍø¹Ø£¿
½ÓÈë²ã
OpenResty ÊÇÒµ½çʹÓ÷dz£¹ã·ºµÄÖ§³Ö Lua µÄ Nginx ÍØÕ¹·½°¸£¬Áé»îÐÔ¡¢Îȶ¨ÐÔºÍÐÔÄܶ¼·Ç³£ÓÅÒ죬ÎÒÃÇÔÚ½ÓÈë²ãµÄ·½°¸Ñ¡ÐÍÉÏÒ²¿¼ÂÇʹÓÃ
OpenResty¡£
½ÓÈë²ãÊÇ×î¿¿½üÓû§µÄÒ»²à£¬ÔÚÕâÒ»²ãÐèÒªÍê³ÉÁ½¼þÊ£º
¸ºÔؾùºâ£¬±£Ö¤¸÷³¤Á¬½Ó Broker ʵÀýÉÏÁ¬½ÓÊýÏà¶Ô¾ùºâ
»á»°±£³Ö£¬µ¥¸ö¿Í»§¶Ëÿ´ÎÁ¬½Óµ½Í¬Ò»¸ö Broker£¬ÓÃÀ´ÌṩÏûÏ¢´«Êä¿É¿¿ÐÔ±£Ö¤
¸ºÔؾùºâÆäʵÓкܶàËã·¨¶¼ÄÜÍê³É£¬²»¹ÜÊÇËæ»ú»¹ÊǸ÷ÖÖ Hash Ëã·¨¶¼ÄܱȽϺõØÊµÏÖ£¬Â鷳һЩµÄÊǻỰ±£³Ö¡£
³£¼ûµÄËÄ²ã¸ºÔØ¾ùºâ²ßÂÔÊǸù¾ÝÁ¬½ÓÀ´Ô´ IP ½øÐÐÒ»ÖÂÐÔ Hash£¬ÔÚ½ÚµãÊý²»±äµÄÇé¿öÏÂÕâÑùÄܱ£Ö¤Ã¿´Î¶¼
Hash µ½Í¬Ò»¸ö Broker ÖУ¬ÉõÖÁÔÚ½ÚµãÊýÉÔ΢¸Ä±äʱҲÄÜ´ó¸ÅÂÊÕÒµ½Ö®Ç°Á¬½ÓµÄ½Úµã¡£
֮ǰÎÒÃÇҲʹÓùýÀ´Ô´ IP Hash µÄ²ßÂÔ£¬Ö÷ÒªÓÐÁ½¸öȱµã£º
·Ö²¼²»¹»¾ùÔÈ£¬²¿·ÖÀ´Ô´ IP ÊÇ´óÐ;ÖÓòÍø NAT ³ö¿Ú£¬ÉÏÃæµÄÁ¬½ÓÊý¶à£¬µ¼Ö Broker ÉÏÁ¬½ÓÊý²»¾ùºâ
²»ÄÜ׼ȷ±êʶ¿Í»§¶Ë£¬µ±Òƶ¯¿Í»§¶ËµôÏßÇл»ÍøÂç¾Í¿ÉÄÜÎÞ·¨Á¬½Ó»Ø¸Õ²ÅµÄ Broker ÁË
ËùÒÔÎÒÃÇ¿¼ÂÇÆß²ãµÄ¸ºÔؾùºâ£¬¸ù¾Ý¿Í»§¶ËµÄΨһ±êʶÀ´½øÐÐÒ»ÖÂÐÔ Hash£¬ÕâÑùËæ»úÐÔ¸üºÃ£¬Í¬Ê±Ò²Äܱ£Ö¤ÔÚÍøÂçÇл»ºóÒ²ÄÜÕýȷ·ÓÉ¡£³£¹æµÄ·½·¨ÊÇÐèÒªÍêÕû½âÎöͨѶÐÒ飬Ȼºó°´ÐÒéµÄ°ü½øÐÐת·¢£¬ÕâÑùʵÏֵijɱ¾ºÜ¸ß£¬¶øÇÒÔö¼ÓÁËÐÒé½âÎö³ö´íµÄ·çÏÕ¡£
×îºóÎÒÃÇÑ¡ÔñÀûÓà Nginx µÄ preread »úÖÆÊµÏÖÆß²ã¸ºÔØ¾ùºâ£¬¶ÔºóÃæ³¤Á¬½Ó Broker
µÄʵÏÖµÄÇÖÈëÐÔС£¬¶øÇÒ½ÓÈë²ãµÄ×ÊÔ´¿ªÏúҲС¡£
Nginx ÔÚ½ÓÊÜÁ¬½Óʱ¿ÉÒÔÖ¸¶¨Ô¤¶ÁÈ¡Á¬½ÓµÄÊý¾Ýµ½ preread buffer ÖУ¬ÎÒÃÇͨ¹ý½âÎö
preread buffer ÖеĿͻ§¶Ë·¢Ë͵ĵÚÒ»¸ö±¨ÎÄÌáÈ¡¿Í»§¶Ë±êʶ£¬ÔÙʹÓÃÕâ¸ö¿Í»§¶Ë±êʶ½øÐÐÒ»ÖÂÐÔ
Hash ¾ÍÄõ½Á˹̶¨µÄ Broker¡£
·¢²¼Óë¶©ÔÄ
ÎÒÃÇÒýÈëÁËÒµ½ç¹ã·ºÊ¹ÓõÄÏûÏ¢¶ÓÁÐ Kafka À´×÷ΪÄÚ²¿ÏûÏ¢´«ÊäµÄÊàŦ£¬Ç°ÃæÌáµ½ÁËһЩÕâôʹÓõÄÔÒò£º
¼õÉÙ³¤Á¬½Ó Broker ÄÚ²¿×´Ì¬£¬Èà Broker ¿ÉÒÔÎÞѹÁ¦À©ÈÝ
ÖªºõÄÚ²¿ÒÑÆ½Ì¨»¯£¬Ö§³ÖˮƽÀ©Õ¹
»¹ÓÐһЩÔÒòÊÇ£º
ʹÓÃÏûÏ¢¶ÓÁÐÏ÷·å£¬±ÜÃâÍ»·¢ÐÔµÄÉÏÐлòÏÂÐÐÏûϢѹ¿åϵͳ
ÒµÎñϵͳÖдóÁ¿Ê¹Óà Kafka ´«ÊäÊý¾Ý£¬½µµÍÓëÒµÎñ·½¶Ô½Ó³É±¾
ÆäÖÐÀûÓÃÏûÏ¢¶ÓÁÐÏ÷·åºÃÀí½â£¬ÏÂÃæÎÒÃÇ¿´Ò»ÏÂÔõôÀûÓà Kafka ÓëÒµÎñ·½¸üºÃµØÍê³É¶Ô½Ó¡£
·¢²¼
Á¬½Ó Broker »á¸ù¾Ý·ÓÉÅäÖý«ÏûÏ¢·¢²¼µ½ Kafka Topic£¬Í¬Ê±Ò²»á¸ù¾Ý¶©ÔÄÅäÖÃÈ¥Ïû·Ñ
Kafka ½«ÏûϢϷ¢¸ø¶©ÔĿͻ§¶Ë¡£
·ÓɹæÔòºÍ¶©ÔĹæÔòÊÇ·Ö±ðÅäÖõģ¬ÄÇô¿ÉÄÜ»á³öÏÖËÄÖÖÇé¿ö£º
Ò»¡¢ÏûϢ·Óɵ½ Kafka Topic£¬µ«²»Ïû·Ñ£¬ÊʺÏÊý¾ÝÉϱ¨µÄ³¡¾°¡£

¶þ¡¢ÏûϢ·Óɵ½ Kafka Topic£¬Ò²±»Ïû·Ñ£¬ÆÕͨµÄ¼´Ê±Í¨Ñ¶³¡¾°¡£

Èý¡¢Ö±½Ó´Ó Kafka Topic Ïû·Ñ²¢Ï·¢£¬ÓÃÓÚ´¿Ï·¢ÏûÏ¢µÄ³¡¾°¡£

ËÄ¡¢ÏûϢ·Óɵ½Ò»¸ö Topic£¬È»ºó´ÓÁíÒ»¸ö Topic Ïû·Ñ£¬ÓÃÓÚÏûÏ¢ÐèÒª¹ýÂË»òÕßÔ¤´¦ÀíµÄ³¡¾°¡£

ÕâÌ×·ÓɲßÂÔµÄÉè¼ÆÁé»îÐԷdz£¸ß£¬¿ÉÒÔ½â¾ö¼¸ºõËùÓеij¡¾°µÄÏûϢ·ÓÉÐèÇó¡£Í¬Ê±ÒòΪ·¢²¼¶©ÔÄ»ùÓÚ Kafka£¬¿ÉÒÔ±£Ö¤ÔÚ´¦Àí´ó¹æÄ£Êý¾ÝʱµÄÏûÏ¢¿É¿¿ÐÔ¡£
¶©ÔÄ
µ±³¤Á¬½Ó Broker ´Ó Kafka Topic ÖÐÏû·Ñ³öÏûÏ¢ºó»á²éÕÒ±¾µØµÄ¶©ÔĹØÏµ£¬È»ºó½«ÏûÏ¢·Ö·¢µ½¿Í»§¶Ë»á»°¡£
ÎÒÃÇ×ʼֱ½ÓʹÓà HashMap ´æ´¢¿Í»§¶ËµÄ¶©ÔĹØÏµ¡£µ±¿Í»§¶Ë¶©ÔÄÒ»¸ö Topic ʱÎÒÃǾͽ«¿Í»§¶ËµÄ»á»°¶ÔÏó·ÅÈëÒÔ
Topic Ϊ Key µÄ¶©ÔÄ Map ÖУ¬µ±·´²éÏûÏ¢µÄ¶©ÔĹØÏµÊ±Ö±½ÓÓà Topic ´Ó Map ÉÏȡֵ¾ÍÐС£
ÒòΪÕâ¸ö¶©ÔĹØÏµÊǹ²Ïí¶ÔÏ󣬵±¶©ÔĺÍÈ¡Ïû¶©ÔÄ·¢Éúʱ¾Í»áÓÐÁ¬½Ó³¢ÊÔ²Ù×÷Õâ¸ö¹²Ïí¶ÔÏó¡£ÎªÁ˱ÜÃâ²¢·¢Ð´ÎÒÃǸø
HashMap ¼ÓÁËËø£¬µ«Õâ¸öÈ«¾ÖËøµÄ³åÍ»·Ç³£ÑÏÖØ£¬ÑÏÖØÓ°ÏìÐÔÄÜ¡£
×îÖÕÎÒÃÇͨ¹ý·ÖƬϸ»¯ÁËËøµÄÁ£¶È£¬·ÖÉ¢ÁËËøµÄ³åÍ»¡£
±¾µØÍ¬Ê±´´½¨Êý°Ù¸ö HashMap£¬µ±ÐèÒªÔÚij¸ö Key ÉÏ´æÈ¡Êý¾Ýǰͨ¹ý Hash ºÍȡģÕÒµ½ÆäÖÐÒ»¸ö
HashMap È»ºó½øÐвÙ×÷£¬ÕâÑù½«È«¾ÖËø·ÖÉ¢µ½ÁËÊý°Ù¸ö HashMap ÖУ¬´ó´ó½µµÍÁ˲Ù×÷³åÍ»£¬Ò²ÌáÉýÁËÕûÌåµÄÐÔÄÜ¡£
ȇȡ
³Ö¾Ã»¯
µ±ÏûÏ¢±»·Ö·¢¸ø»á»° Session ¶ÔÏóºó£¬ÓÉ Session À´¿ØÖÆÏûÏ¢µÄÏ·¢¡£
Session »áÅжÏÏûÏ¢ÊÇ·ñÊÇÖØÒª Topic ÏûÏ¢£¬ Êǵϰ½«ÏûÏ¢±ê¼Ç QoS µÈ¼¶Îª 1£¬Í¬Ê±½«ÏûÏ¢´æ´¢µ½
Redis µÄδ½ÓÊÕÏûÏ¢¶ÓÁУ¬²¢½«ÏûϢϷ¢¸ø¿Í»§¶Ë¡£µÈµ½¿Í»§¶Ë¶ÔÏûÏ¢µÄ ACK ºó£¬ÔÙ½«Î´È·È϶ÓÁÐÖеÄÏûϢɾ³ý¡£
ÓÐһЩҵ½ç·½°¸ÊÇÔÚÄÚ´æÖÐά»¤ÁËÒ»¸öÁÐ±í£¬ÔÚÀ©ÈÝ»òËõÈÝʱÕⲿ·ÖÊý¾Ýû·¨¸ú×ÅÇ¨ÒÆ¡£Ò²Óв¿·ÖÒµ½ç·½°¸ÊÇÔÚ³¤Á¬½Ó¼¯ÈºÖÐά»¤ÁËÒ»¸ö·Ö²¼Ê½ÄÚ´æ´æ´¢£¬ÕâÑùʵÏÖÆðÀ´¸´ÔÓ¶ÈÒ²»á±ä¸ß¡£
ÎÒÃǽ«Î´È·ÈÏÏûÏ¢¶ÓÁзŵ½ÁËÍⲿ³Ö¾Ã»¯´æ´¢ÖУ¬±£Ö¤Á˵¥¸ö Broker å´»úºó£¬¿Í»§¶ËÖØÐÂÉÏÏßÁ¬½Óµ½ÆäËû
Broker Ò²Äָܻ´ Session Êý¾Ý£¬¼õÉÙÁËÀ©ÈݺÍËõÈݵĸºµ£¡£
»¬¶¯´°¿Ú
ÔÚ·¢ËÍÏûϢʱ£¬Ã¿Ìõ QoS 1 µÄÏûÏ¢ÐèÒª±»¾¹ý´«Êä¡¢¿Í»§¶Ë´¦Àí¡¢»Ø´« ACK ²ÅÄÜÈ·ÈÏÏ·¢Íê³É£¬Â·¾¶ºÄʱ½Ï³¤¡£Èç¹ûÏûÏ¢Á¿½Ï´ó£¬Ã¿ÌõÏûÏ¢¶¼µÈ´ýÕâô³¤µÄÈ·ÈϲÅÄÜÏ·¢ÏÂÒ»Ìõ£¬Ï·¢Í¨µÀ´ø¿í²»Äܱ»³ä·ÖÀûÓá£
ΪÁ˱£Ö¤·¢Ë͵ÄЧÂÊ£¬ÎÒÃDzο¼ TCP µÄ»¬¶¯´°¿ÚÉè¼ÆÁ˲¢Ðз¢Ë͵ĻúÖÆ¡£ÎÒÃÇÉèÖÃÒ»¶¨µÄãÐֵΪ·¢Ë͵Ϭ¶¯´°¿Ú£¬±íʾͨµÀÉÏ¿ÉÒÔͬʱÓÐÕâô¶àÌõÏûÏ¢ÕýÔÚ´«ÊäºÍ±»µÈ´ýÈ·ÈÏ¡£

ÎÒÃÇÓ¦ÓòãÉè¼ÆµÄ»¬¶¯´°¿Ú¸ú TCP µÄ»¬¶¯´°¿Úʵ¼ÊÉÏ»¹ÓÐЩ²îÒì¡£
TCP µÄ»¬¶¯´°¿ÚÄÚµÄ IP ±¨ÎÄÎÞ·¨±£Ö¤Ë³Ðòµ½´ï£¬¶øÎÒÃǵÄͨѶÊÇ»ùÓÚ TCP µÄËùÒÔÎÒÃǵϬ¶¯´°¿ÚÄÚµÄÒµÎñÏûÏ¢ÊÇ˳ÐòµÄ£¬Ö»ÓÐÔÚÁ¬½Ó״̬Òì³£¡¢¿Í»§¶ËÂß¼Òì³£µÈÇé¿öϲſÉÄܵ¼Ö²¿·Ö´°¿ÚÄÚµÄÏûÏ¢ÂÒÐò¡£
ÒòΪ TCP ÐÒé±£Ö¤ÁËÏûÏ¢µÄ½ÓÊÕ˳Ðò£¬ËùÒÔÕý³£µÄ·¢Ë͹ý³ÌÖв»ÐèÒªÕë¶Ôµ¥ÌõÏûÏ¢½øÐÐÖØÊÔ£¬Ö»ÓÐÔÚ¿Í»§¶ËÖØÐÂÁ¬½Óºó²Å¶Ô´°¿ÚÄÚµÄδȷÈÏÏûÏ¢ÖØÐ·¢ËÍ¡£ÏûÏ¢µÄ½ÓÊÕ¶Ëͬʱ»á±£Áô´°¿Ú´óСµÄ»º³åÇøÓÃÀ´ÏûÏ¢È¥ÖØ£¬±£Ö¤ÒµÎñ·½½ÓÊÕµ½µÄÏûÏ¢²»»áÖØ¸´¡£
ÎÒÃÇ»ùÓÚ TCP ¹¹½¨µÄ»¬¶¯´°¿Ú±£Ö¤ÁËÏûÏ¢µÄ˳ÐòÐÔͬʱҲ¼«´óÌáÉý´«ÊäµÄÍÌÍÂÁ¿¡£
дÔÚ×îºó
Öªºõ³¤Á¬½ÓÍø¹ØÓÉ»ù´¡¼Ü¹¹×é (Infra) ¿ª·¢ºÍά»¤£¬Ö÷Òª¹±Ï×ÕßÊÇ @faceair @°²½Ôó ¡£
»ù´¡¼Ü¹¹×鸺ÔðÖªºõµÄÁ÷Á¿Èë¿ÚºÍÄÚ²¿»ù´¡ÉèÊ©½¨É裬¶ÔÍâÎÒÃǷܶ·ÔÚÖ±Ãæº£Á¿Á÷Á¿µÄµÄµÚÒ»Õ½Ïߣ¬¶ÔÄÚÎÒÃÇΪËùÓеÄÒµÎñÌṩ¼áÈçÅÍʯµÄ»ù´¡ÉèÊ©£¬Óû§µÄÿһ´Î·ÃÎÊ¡¢Ã¿Ò»¸öÇëÇó¡¢ÄÚÍøµÄÿһ´Îµ÷Óö¼ÓëÎÒÃǵÄϵͳϢϢÏà¹Ø¡£
|