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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÏûÏ¢Öмä¼þNSQÉîÈëÓëʵ¼ù
 
À´Ô´:¼òÊé ·¢²¼ÓÚ:2017-11-1
  5950  次浏览      27
 

1. ½éÉÜ

×î½üÔÚÑо¿Ò»Ð©ÏûÏ¢Öмä¼þ£¬³£ÓõÄMQÈçRabbitMQ,ActiveMQ,KafkaµÈ¡£NSQÊÇÒ»¸ö»ùÓÚGoÓïÑԵķֲ¼Ê½ÊµÊ±ÏûϢƽ̨£¬Ëü»ùÓÚMIT¿ªÔ´Ð­Òé·¢²¼£¬ÓÉbitly¹«Ë¾¿ªÔ´³öÀ´µÄÒ»¿î¼òµ¥Ò×ÓõÄÏûÏ¢Öмä¼þ¡£

¹Ù·½ºÍµÚÈý·½»¹ÎªNSQ¿ª·¢ÁËÖÚ¶à¿Í»§¶Ë¹¦Äܿ⣬Èç¹Ù·½ÌṩµÄ»ùÓÚHTTPµÄnsqd¡¢Go¿Í»§¶Ëgo-nsq¡¢Python¿Í»§¶Ëpynsq¡¢»ùÓÚNode.jsµÄJavaScript¿Í»§¶Ënsqjs¡¢Òì²½C¿Í»§¶Ëlibnsq¡¢Java¿Í»§¶Ënsq-javaÒÔ¼°»ùÓÚ¸÷ÖÖÓïÑÔµÄÖÚ¶àµÚÈý·½¿Í»§¶Ë¹¦Äܿ⡣

1.1 Features

1). Distributed

NSQÌṩÁË·Ö²¼Ê½µÄ£¬È¥ÖÐÐÄ»¯£¬ÇÒûÓе¥µã¹ÊÕϵÄÍØÆË½á¹¹£¬Îȶ¨µÄÏûÏ¢´«Êä·¢²¼±£ÕÏ£¬Äܹ»¾ßÓиßÈÝ´íºÍHA£¨¸ß¿ÉÓã©ÌØÐÔ¡£

2). ScalableÒ×ÓÚÀ©Õ¹

NSQÖ§³ÖˮƽÀ©Õ¹£¬Ã»ÓÐÖÐÐÄ»¯µÄbrokers¡£ÄÚÖõķ¢ÏÖ·þÎñ¼ò»¯ÁËÔÚ¼¯ÈºÖÐÔö¼Ó½Úµã¡£Í¬Ê±Ö§³Öpub-subºÍload-balanced µÄÏûÏ¢·Ö·¢¡£

3). Ops Friendly

NSQ·Ç³£ÈÝÒ×ÅäÖúͲ¿Êð£¬ÉúÀ´¾Í°ó¶¨ÁËÒ»¸ö¹ÜÀí½çÃæ¡£¶þ½øÖưüûÓÐÔËÐÐʱÒÀÀµ¡£¹Ù·½ÓÐDocker image¡£

4).Integrated¸ß¶È¼¯³É

¹Ù·½µÄ Go ºÍ Python¿â¶¼ÓÐÌṩ¡£¶øÇÒΪ´ó¶àÊýÓïÑÔÌṩÁ˿⡣

1.2 ×é¼þ

1.Topic £ºÒ»¸ötopic¾ÍÊdzÌÐò·¢²¼ÏûÏ¢µÄÒ»¸öÂß¼­¼ü£¬µ±³ÌÐòµÚÒ»´Î·¢²¼ÏûϢʱ¾Í»á´´½¨topic¡£

2.Channels £ºchannelÓëÏû·ÑÕßÏà¹Ø£¬ÊÇÏû·ÑÕßÖ®¼äµÄ¸ºÔؾùºâ£¬channelÔÚijÖÖÒâÒåÉÏÀ´ËµÊÇÒ»¸ö¡°¶ÓÁС±¡£Ã¿µ±Ò»¸ö·¢²¼Õß·¢ËÍÒ»ÌõÏûÏ¢µ½Ò»¸ötopic£¬ÏûÏ¢»á±»¸´ÖƵ½ËùÓÐÏû·ÑÕßÁ¬½ÓµÄchannelÉÏ£¬Ïû·ÑÕßͨ¹ýÕâ¸öÌØÊâµÄchannel¶ÁÈ¡ÏûÏ¢£¬Êµ¼ÊÉÏ£¬ÔÚÏû·ÑÕßµÚÒ»´Î¶©ÔÄʱ¾Í»á´´½¨channel¡£Channel»á½«ÏûÏ¢½øÐÐÅÅÁУ¬Èç¹ûûÓÐÏû·ÑÕß¶ÁÈ¡ÏûÏ¢£¬ÏûÏ¢Ê×ÏÈ»áÔÚÄÚ´æÖÐÅŶӣ¬µ±Á¿Ì«´óʱ¾Í»á±»±£´æµ½´ÅÅÌÖС£

3.Messages£ºÏûÏ¢¹¹³ÉÁËÎÒÃÇÊý¾ÝÁ÷µÄÖмáÁ¦Á¿£¬Ïû·ÑÕß¿ÉÒÔÑ¡Ôñ½áÊøÏûÏ¢£¬±íÃ÷ËüÃÇÕýÔÚ±»Õý³£´¦Àí£¬»òÕßÖØÐ½«ËûÃÇÅŶӴýµ½ºóÃæÔÙ½øÐд¦Àí¡£Ã¿¸öÏûÏ¢°üº¬´«µÝ³¢ÊԵĴÎÊý£¬µ±ÏûÏ¢´«µÝ³¬¹ýÒ»¶¨µÄ·§Öµ´ÎÊýʱ£¬ÎÒÃÇÓ¦¸Ã·ÅÆúÕâЩÏûÏ¢£¬»òÕß×÷Ϊ¶îÍâÏûÏ¢½øÐд¦Àí¡£

4.nsqd£ºnsqd ÊÇÒ»¸öÊØ»¤½ø³Ì£¬¸ºÔð½ÓÊÕ£¬ÅŶӣ¬Í¶µÝÏûÏ¢¸ø¿Í»§¶Ë¡£Ëü¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬²»¹ýͨ³£ËüÊÇÓÉ nsqlookupd ʵÀýËùÔÚ¼¯ÈºÅäÖõģ¨ËüÔÚÕâÄÜÉùÃ÷ topics ºÍ channels£¬ÒÔ±ã´ó¼ÒÄÜÕÒµ½£©¡£

5.nsqlookupd£ºnsqlookupd ÊÇÊØ»¤½ø³Ì¸ºÔð¹ÜÀíÍØÆËÐÅÏ¢¡£¿Í»§¶Ëͨ¹ý²éѯ nsqlookupd À´·¢ÏÖÖ¸¶¨»°Ì⣨topic£©µÄÉú²úÕߣ¬²¢ÇÒ nsqd ½Úµã¹ã²¥»°Ì⣨topic£©ºÍͨµÀ£¨channel£©ÐÅÏ¢¡£ÓÐÁ½¸ö½Ó¿Ú£ºTCP ½Ó¿Ú£¬nsqd ÓÃËüÀ´¹ã²¥¡£HTTP ½Ó¿Ú£¬¿Í»§¶ËÓÃËüÀ´·¢Ïֺ͹ÜÀí¡£

6.nsqadmin£ºnsqadmin ÊÇÒ»Ì× WEB UI£¬ÓÃÀ´»ã¼¯¼¯ÈºµÄʵʱͳ¼Æ£¬²¢Ö´Ðв»Í¬µÄ¹ÜÀíÈÎÎñ¡£

³£Óù¤¾ßÀࣺ

7.nsq_to _file£ºÏû·ÑÖ¸¶¨µÄ»°Ì⣨topic£©/ͨµÀ£¨channel£©£¬²¢Ð´µ½ÎļþÖУ¬ÓÐÑ¡ÔñµÄ¹ö¶¯ºÍ/»òѹËõÎļþ¡£

8.nsq_to _http£ºÏû·ÑÖ¸¶¨µÄ»°Ì⣨topic£©/ͨµÀ£¨channel£©ºÍÖ´ÐÐ HTTP requests (GET/POST) µ½Ö¸¶¨µÄ¶Ëµã¡£

9.nsq_to _nsq£ºÏû·ÑÕßÖ¸¶¨µÄ»°Ìâ/ͨµÀºÍÖØ·¢²¼ÏûÏ¢µ½Ä¿µÄµØ nsqd ͨ¹ý TCP¡£

1.3 ÍØÆË½á¹¹

NSQÍÆ¼öͨ¹ýËûÃÇÏàÓ¦µÄnsqdʵÀýʹÓÃЭͬ¶¨Î»·¢²¼Õߣ¬ÕâÒâζ׿´Ê¹Ãæ¶ÔÍøÂç·ÖÇø£¬ÏûÏ¢Ò²»á±»±£´æÔÚ±¾µØ£¬Ö±µ½ËüÃDZ»Ò»¸öÏû·ÑÕß¶ÁÈ¡¡£¸üÖØÒªµÄÊÇ£¬·¢²¼Õß²»±ØÈ¥·¢ÏÖÆäËûµÄnsqd½Úµã£¬ËûÃÇ×ÜÊÇ¿ÉÒÔÏò±¾µØÊµÀý·¢²¼ÏûÏ¢¡£

NSQ

Ê×ÏÈ£¬Ò»¸ö·¢²¼ÕßÏòËüµÄ±¾µØnsqd·¢ËÍÏûÏ¢£¬Òª×öµ½Õâµã£¬Ê×ÏÈÒªÏÈ´ò¿ªÒ»¸öÁ¬½Ó£¬È»ºó·¢ËÍÒ»¸ö°üº¬topicºÍÏûÏ¢Ö÷ÌåµÄ·¢²¼ÃüÁÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃǽ«ÏûÏ¢·¢²¼µ½Ê¼þtopicÉÏÒÔ·ÖÉ¢µ½ÎÒÃDz»Í¬µÄworkerÖС£

ʼþtopic»á¸´ÖÆÕâЩÏûÏ¢²¢ÇÒÔÚÿһ¸öÁ¬½ÓtopicµÄchannelÉϽøÐÐÅŶӣ¬ÔÚÎÒÃǵݸÀýÖУ¬ÓÐÈý¸öchannel£¬ËüÃÇÆäÖÐÖ®Ò»×÷Ϊµµ°¸channel¡£Ïû·ÑÕß»á»ñÈ¡ÕâЩÏûÏ¢²¢ÇÒÉÏ´«µ½S3¡£

nsqd

ÿ¸öchannelµÄÏûÏ¢¶¼»á½øÐÐÅŶӣ¬Ö±µ½Ò»¸öworker°ÑËûÃÇÏû·Ñ£¬Èç¹û´Ë¶ÓÁг¬³öÁËÄÚ´æÏÞÖÆ£¬ÏûÏ¢½«»á±»Ð´Èëµ½´ÅÅÌÖС£Nsqd½ÚµãÊ×ÏÈ»áÏònsqlookup¹ã²¥ËûÃǵÄλÖÃÐÅÏ¢£¬Ò»µ©ËüÃÇ×¢²á³É¹¦£¬worker½«»á´Ónsqlookup·þÎñÆ÷½ÚµãÉÏ·¢ÏÖËùÓаüº¬Ê¼þtopicµÄnsqd½Úµã¡£

nsqlookupd

È»ºóÿ¸öworkerÏòÿ¸önsqdÖ÷»ú½øÐж©ÔIJÙ×÷£¬ÓÃÓÚ±íÃ÷workerÒѾ­×¼±¸ºÃ½ÓÊÜÏûÏ¢ÁË¡£ÕâÀïÎÒÃDz»ÐèÒªÒ»¸öÍêÕûµÄÁ¬Í¨Í¼£¬µ«ÎÒÃDZØÐëÒª±£Ö¤Ã¿¸öµ¥¶ÀµÄnsqdʵÀýÓµÓÐ×ã¹»µÄÏû·ÑÕßÈ¥Ïû·ÑËüÃǵÄÏûÏ¢£¬·ñÔòchannel»á±»¶ÓÁжÑ×Å¡£

2. Internals

2.1 ÏûÏ¢´«µÝµ£±£

NSQ ±£Ö¤ÏûÏ¢½«½»¸¶ÖÁÉÙÒ»´Î£¬ËäÈ»ÏûÏ¢¿ÉÄÜÊÇÖØ¸´µÄ¡£Ïû·ÑÕßÓ¦¸Ã¹Ø×¢µ½ÕâÒ»µã£¬É¾³ýÖØ¸´Êý¾Ý»òÖ´ÐÐidempotentµÈ²Ù×÷¡£

Õâ¸öµ£±£ÊÇ×÷ΪЭÒéºÍ¹¤×÷Á÷µÄÒ»²¿·Ö£¬¹¤×÷Ô­ÀíÈçÏ£¨¼ÙÉè¿Í»§¶Ë³É¹¦Á¬½Ó²¢¶©ÔÄÒ»¸ö»°Ì⣩£º

1£©¿Í»§±íʾÒѾ­×¼±¸ºÃ½ÓÊÕÏûÏ¢

2£©NSQ ·¢ËÍÒ»ÌõÏûÏ¢£¬²¢ÔÝʱ½«Êý¾Ý´æ´¢ÔÚ±¾µØ£¨ÔÚ re-queue »ò timeout£©

3£©¿Í»§¶Ë»Ø¸´ FIN£¨½áÊø£©»ò REQ£¨ÖØÐÂÅŶӣ©·Ö±ðָʾ³É¹¦»òʧ°Ü¡£Èç¹û¿Í»§¶ËûÓлظ´, NSQ »áÔÚÉ趨µÄʱ¼ä³¬Ê±£¬×Ô¶¯ÖØÐÂÅŶÓÏûÏ¢

ÕâÈ·±£ÁËÏûÏ¢¶ªÊ§Î¨Ò»¿ÉÄܵÄÇé¿öÊDz»Õý³£½áÊø nsqd ½ø³Ì¡£ÔÚÕâÖÖÇé¿öÏ£¬ÕâÊÇÔÚÄÚ´æÖеÄÈκÎÐÅÏ¢£¨»òÈκλº³åδˢе½´ÅÅÌ£©¶¼½«¶ªÊ§¡£

ÈçºÎ·ÀÖ¹ÏûÏ¢¶ªÊ§ÊÇ×îÖØÒªµÄ£¬¼´Ê¹ÊÇÕâ¸öÒâÍâÇé¿ö¿ÉÒԵõ½»º½â¡£Ò»ÖÖ½â¾ö·½°¸Êǹ¹³ÉÈßÓà nsqd¶Ô£¨ÔÚ²»Í¬µÄÖ÷»úÉÏ£©½ÓÊÕÏûÏ¢µÄÏàͬ²¿·ÖµÄ¸±±¾¡£ÒòΪÄãʵÏÖµÄÏû·ÑÕßÊÇÃݵȵģ¬ÒÔÁ½±¶Ê±¼ä´¦ÀíÕâЩÏûÏ¢²»»á¶ÔÏÂÓÎÔì³ÉÓ°Ï죬²¢Ê¹µÃϵͳÄܹ»³ÐÊÜÈκε¥Ò»½Úµã¹ÊÕ϶ø²»»á¶ªÊ§ÐÅÏ¢¡£

2.2 ¼ò»¯ÅäÖú͹ÜÀí

µ¥¸ö nsqd ʵÀý±»Éè¼Æ³É¿ÉÒÔͬʱ´¦Àí¶à¸öÊý¾ÝÁ÷¡£Á÷±»³ÆÎª¡°»°Ì⡱ºÍ»°ÌâÓÐ 1 ¸ö»ò¶à¸ö¡°Í¨µÀ¡±¡£Ã¿¸öͨµÀ¶¼½ÓÊÕµ½Ò»¸ö»°ÌâÖÐËùÓÐÏûÏ¢µÄ¿½±´¡£ÔÚʵ¼ùÖУ¬Ò»¸öͨµÀÓ³Éäµ½ÏÂÐзþÎñÏû·ÑÒ»¸ö»°Ìâ¡£

»°ÌâºÍͨµÀ¶¼Ã»ÓÐÔ¤ÏÈÅäÖ᣻°ÌâÓɵÚÒ»´Î·¢²¼ÏûÏ¢µ½ÃüÃûµÄ»°Ìâ»òµÚÒ»´Îͨ¹ý¶©ÔÄÒ»¸öÃüÃû»°ÌâÀ´´´½¨¡£Í¨µÀ±»µÚÒ»´Î¶©Ôĵ½Ö¸¶¨µÄͨµÀ´´½¨¡£»°ÌâºÍͨµÀµÄËùÓлº³åµÄÊý¾ÝÏ໥¶ÀÁ¢£¬·ÀÖ¹»ºÂýÏû·ÑÕßÔì³É¶ÔÆäËûͨµÀµÄ»ýѹ£¨Í¬ÑùÊÊÓÃÓÚ»°Ìâ¼¶±ð£©¡£

Ò»¸öͨµÀÒ»°ã»áÓжà¸ö¿Í»§¶ËÁ¬½Ó¡£¼ÙÉèËùÓÐÒÑÁ¬½ÓµÄ¿Í»§¶Ë´¦ÓÚ×¼±¸½ÓÊÕÏûÏ¢µÄ״̬£¬Ã¿¸öÏûÏ¢½«±»´«µÝµ½Ò»¸öËæ»úµÄ¿Í»§¶Ë¡£nsqlookupd£¬ËüÌṩÁËÒ»¸öĿ¼·þÎñ£¬Ïû·ÑÕß¿ÉÒÔ²éÕÒµ½ÌṩËûÃǸÐÐËȤ¶©ÔÄ»°ÌâµÄ nsqd µØÖ· ¡£ÔÚÅäÖ÷½Ã棬°ÑÏû·ÑÕßÓëÉú²úÕß½âñ£¨ËüÃǶ¼·Ö±ðÖ»ÐèÒªÖªµÀÄÄÀïÈ¥Á¬½Ó nsqlookupd µÄ¹²Í¬ÊµÀý£¬¶ø²»ÊǶԷ½£©£¬½µµÍ¸´ÔÓÐÔºÍά»¤¡£

ÔÚ¸üµ×µÄ²ãÃæ£¬Ã¿¸ö nsqd ÓÐÒ»¸öÓë nsqlookupd µÄ³¤ÆÚ TCP Á¬½Ó£¬¶¨ÆÚÍÆ¶¯Æä״̬¡£Õâ¸öÊý¾Ý±» nsqlookupd ÓÃÓÚ¸øÏû·ÑÕß֪ͨ nsqd µØÖ·¡£¶ÔÓÚÏû·ÑÕßÀ´Ëµ£¬Ò»¸ö±©Â¶µÄ HTTP /lookup ½Ó¿ÚÓÃÓÚÂÖѯ¡£Îª»°ÌâÒýÈëÒ»¸öеÄÏû·ÑÕߣ¬Ö»ÐèÆô¶¯Ò»¸öÅäÖÃÁË nsqlookup ʵÀýµØÖ·µÄ NSQ ¿Í»§¶Ë¡£ÎÞÐèΪÌí¼ÓÈκÎеÄÏû·ÑÕß»òÉú²úÕ߸ü¸ÄÅäÖ㬴ó´ó½µµÍÁË¿ªÏúºÍ¸´ÔÓÐÔ¡£

2.3 Ïû³ýµ¥µã¹ÊÕÏ

NSQ±»Éè¼ÆÒÔ·Ö²¼µÄ·½Ê½±»Ê¹Óá£nsqd ¿Í»§¶Ë£¨Í¨¹ý TCP £©Á¬½Óµ½Ö¸¶¨»°ÌâµÄËùÓÐÉú²úÕßʵÀý¡£Ã»ÓÐÖмäÈË£¬Ã»ÓÐÏûÏ¢´úÀí£¬Ò²Ã»Óе¥µã¹ÊÕÏ¡£

ÕâÖÖÍØÆË½á¹¹Ïû³ýµ¥Á´£¬¾ÛºÏ£¬·´À¡¡£Ïà·´£¬ÄãµÄÏû·ÑÕßÖ±½Ó·ÃÎÊËùÓÐÉú²úÕß¡£´Ó¼¼ÊõÉϽ²£¬Äĸö¿Í»§¶ËÁ¬½Óµ½Äĸö NSQ ²»ÖØÒª£¬Ö»ÒªÓÐ×ã¹»µÄÏû·ÑÕßÁ¬½Óµ½ËùÓÐÉú²úÕߣ¬ÒÔÂú×ã´óÁ¿µÄÏûÏ¢£¬±£Ö¤ËùÓж«Î÷×îÖÕ½«±»´¦Àí¡£¶ÔÓÚ nsqlookupd£¬¸ß¿ÉÓÃÐÔÊÇͨ¹ýÔËÐжà¸öʵÀýÀ´ÊµÏÖ¡£ËûÃDz»Ö±½ÓÏ໥ͨÐźÍÊý¾Ý±»ÈÏΪÊÇ×îÖÕÒ»Ö¡£Ïû·ÑÕßÂÖѯËùÓеÄÅäÖÃµÄ nsqlookupd ʵÀýºÍºÏ²¢ response¡£Ê§°ÜµÄ£¬ÎÞ·¨·ÃÎʵ쬻òÒÔÆäËû·½Ê½¹ÊÕϵĽڵ㲻»áÈÃϵͳÏÝÓÚÍ£¶Ù¡£

2.4 ЧÂÊ

¶ÔÓÚÊý¾ÝµÄЭÒ飬ͨ¹ýÍÆËÍÊý¾Ýµ½¿Í»§¶Ë×î´óÏ޶ȵØÌá¸ßÐÔÄܺÍÍÌÍÂÁ¿µÄ£¬¶ø²»Êǵȴý¿Í»§¶ËÀ­Êý¾Ý¡£Õâ¸ö¸ÅÄ³ÆÖ®Îª RDY ״̬£¬»ù±¾ÉÏÊǿͻ§¶ËÁ÷Á¿¿ØÖƵÄÒ»ÖÖÐÎʽ¡£

µ±¿Í»§¶ËÁ¬½Óµ½ nsqd ºÍ²¢¶©Ôĵ½Ò»¸öͨµÀʱ£¬Ëü±»·ÅÖÃÔÚÒ»¸ö RDY Ϊ 0 ״̬¡£ÕâÒâζ×Å£¬»¹Ã»ÓÐÐÅÏ¢±»·¢Ë͵½¿Í»§¶Ë¡£µ±¿Í»§¶ËÒÑ×¼±¸ºÃ½ÓÊÕÏûÏ¢·¢ËÍ£¬¸üÐÂËüµÄÃüÁî RDY ״̬µ½Ëü×¼±¸´¦ÀíµÄÊýÁ¿£¬±ÈÈç 100¡£ÎÞÐèÈκζîÍâµÄÖ¸Áµ± 100 ÌõÏûÏ¢¿ÉÓÃʱ£¬½«±»´«µÝµ½¿Í»§¶Ë£¨·þÎñÆ÷¶ËΪÄǸö¿Í»§¶Ëÿ´ÎµÝ¼õ RDY ¼ÆÊý£©¡£¿Í»§¶Ë¿âµÄ±»Éè¼Æ³ÉÔÚ RDY Êý´ïµ½ÅäÖà max-in-flightµÄ 25% ·¢ËÍÒ»¸öÃüÁîÀ´¸üРRDY ¼ÆÊý£¨²¢Êʵ±¿¼ÂÇÁ¬½Óµ½¶à¸ö nsqd Çé¿öÏ£¬Êʵ±µØ·ÖÅ䣩¡£

efficiency

2.5 ÐÄÌøºÍ³¬Ê±

NSQ µÄ TCP ЭÒéÊÇÃæÏò push µÄ¡£ÔÚ½¨Á¢Á¬½Ó£¬ÎÕÊÖ£¬ºÍ¶©Ôĺó£¬Ïû·ÑÕß±»·ÅÖÃÔÚÒ»¸öΪ 0 µÄ RDY ״̬¡£µ±Ïû·ÑÕß×¼±¸ºÃ½ÓÊÕÏûÏ¢£¬Ëü¸üÐ嵀 RDY ״̬µ½×¼±¸½ÓÊÕÏûÏ¢µÄÊýÁ¿¡£NSQ ¿Í»§¶Ë¿â²»¶ÏÔÚÄ»ºó¹ÜÀí£¬ÏûÏ¢¿ØÖÆÁ÷µÄ½á¹û¡£Ã¿¸ôÒ»¶Îʱ¼ä£¬nsqd ½«·¢ËÍÒ»¸öÐÄÌøÏßÁ¬½Ó¡£¿Í»§¶Ë¿ÉÒÔÅäÖÃÐÄÌøÖ®¼äµÄ¼ä¸ô£¬µ« nsqd »áÆÚ´ýÒ»¸ö»ØÓ¦ÔÚËü·¢ËÍÏÂÒ»¸öÐĵô֮ǰ¡£

×éºÏÓ¦Óü¶±ðµÄÐÄÌøºÍ RDY ״̬£¬±ÜÃâÍ·×èÈûÏÖÏó£¬Ò²¿ÉÄÜʹÐÄÌøÎÞÓ㨼´£¬Èç¹ûÏû·ÑÕßÊÇÔÚºóÃæµÄ´¦ÀíÏûÏ¢Á÷µÄ½ÓÊÕ»º³åÇøÖУ¬²Ù×÷ϵͳ½«±»ÌîÂú£¬¶ÂÐÄÌø£©ÎªÁ˱£Ö¤½ø¶È£¬ËùÓеÄÍøÂç IO ʱ¼äÉÏÏÞÊÆ±ØÓëÅäÖõÄÐÄÌø¼ä¸ôÏà¹ØÁª¡£ÕâÒâζ×Å£¬Äã¿ÉÒÔ´Ó×ÖÃæÉϰεôÖ®¼äµÄÍøÂçÁ¬½Ó nsqd ºÍÏû·ÑÕߣ¬Ëü»á¼ì²â²¢ÕýÈ·´¦Àí´íÎó¡£µ±¼ì²âµ½Ò»¸öÖÂÃü´íÎ󣬿ͻ§¶ËÁ¬½Ó±»Ç¿Öƹرա£ÔÚ´«ÊäÖеÄÏûÏ¢»á³¬Ê±¶øÖØÐÂÅŶӵȴý´«µÝµ½ÁíÒ»¸öÏû·ÑÕß¡£×îºó£¬´íÎó»á±»¼Ç¼²¢ÀۼƵ½¸÷ÖÖÄÚ²¿Ö¸±ê¡£

2.6 ·Ö²¼Ê½

ÒòΪNSQûÓÐÔÚÊØ»¤³ÌÐòÖ®¼ä¹²ÏíÐÅÏ¢£¬ËùÒÔËü´ÓÒ»¿ªÊ¼¾ÍÊÇΪÁË·Ö²¼Ê½²Ù×÷¶øÉú¡£¸ö±ðµÄ»úÆ÷¿ÉÒÔËæ±ãå´»úËæ±ãÆô¶¯¶ø²»»áÓ°Ï쵽ϵͳµÄÆäÓಿ·Ö£¬ÏûÏ¢·¢²¼Õß¿ÉÒÔÔÚ±¾µØ·¢²¼£¬¼´Ê¹Ãæ¶ÔÍøÂç·ÖÇø¡£

ÕâÖÖ¡°·Ö²¼Ê½ÓÅÏÈ¡±µÄÉè¼ÆÀíÄîÒâζ×ÅNSQ»ù±¾ÉÏ¿ÉÒÔÓÀÔ¶²»¶ÏµØÀ©Õ¹£¬ÐèÒª¸ü¸ßµÄÍÌÍÂÁ¿£¿ÄǾÍÌí¼Ó¸ü¶àµÄnsqd°É¡£Î¨Ò»µÄ¹²Ïí״̬¾ÍÊDZ£´æÔÚlookup½ÚµãÉÏ£¬ÉõÖÁËüÃDz»ÐèҪȫ¾ÖÊÓͼ£¬ÅäÖÃijЩnsqd×¢²áµ½Ä³Ð©lookup½ÚµãÉÏÕâÊǺܼòµ¥µÄÅäÖã¬Î¨Ò»¹Ø¼üµÄµØ·½¾ÍÊÇÏû·ÑÕß¿ÉÒÔͨ¹ýlookup½Úµã»ñÈ¡ËùÓÐÍêÕûµÄ½Úµã¼¯¡£ÇåÎúµÄ¹ÊÕÏʼþ¡ª¡ªNSQÔÚ×é¼þÄÚ½¨Á¢ÁËÒ»Ì×Ã÷È·¹ØÓÚ¿ÉÄܵ¼Ö¹ÊÕϵĵĹÊÕÏȨºâ»úÖÆ£¬Õâ¶ÔÏûÏ¢´«µÝºÍ»Ö¸´¶¼ÓÐÒâÒå¡£ËäÈ»ËüÃÇ¿ÉÄܲ»ÏñKafkaϵͳÄÇÑùÌṩÑϸñµÄ±£Ö¤¼¶±ð£¬µ«NSQ¼òµ¥µÄ²Ù×÷ʹ¹ÊÕÏÇé¿ö·Ç³£Ã÷ÏÔ¡£

2.7 no replication

²»ÏñÆäËûµÄ¶ÓÁÐ×é¼þ£¬NSQ²¢Ã»ÓÐÌṩÈκÎÐÎʽµÄ¸´Öƺͼ¯Èº£¬Ò²ÕýÊÇÕâµãÈÃËüÄܹ»Èç´Ë¼òµ¥µØÔËÐУ¬µ«Ëüȷʵ¶ÔÓÚһЩ¸ß±£Ö¤ÐԸ߿ɿ¿ÐÔµÄÏûÏ¢·¢²¼Ã»ÓÐ×ã¹»µÄ±£Ö¤¡£ÎÒÃÇ¿ÉÒÔͨ¹ý½µµÍÎļþͬ²½µÄʱ¼äÀ´²¿·Ö±ÜÃ⣬ֻÐèͨ¹ýÒ»¸ö±êÖ¾ÅäÖã¬Í¨¹ýEBSÖ§³ÖÎÒÃǵĶÓÁС£µ«ÊÇÕâÑùÈÔÈ»´æÔÚÒ»¸öÏûÏ¢±»·¢²¼ºóÂíÉÏËÀÍö£¬¶ªÊ§ÁËÓÐЧµÄдÈëµÄÇé¿ö¡£

2.8 ûÓÐÑϸñµÄ˳Ðò

ËäÈ»KafkaÓÉÒ»¸öÓÐÐòµÄÈÕÖ¾¹¹³É£¬µ«NSQ²»ÊÇ¡£ÏûÏ¢¿ÉÒÔÔÚÈκÎʱ¼äÒÔÈκÎ˳Ðò½øÈë¶ÓÁС£ÔÚÎÒÃÇʹÓõݸÀýÖУ¬Õâͨ³£Ã»ÓйØÏµ£¬ÒòΪËùÓеÄÊý¾Ý¶¼±»¼ÓÉÏÁËʱ¼ä´Á£¬µ«Ëü²¢²»ÊʺÏÐèÒªÑϸñ˳ÐòµÄÇé¿ö¡£

2.9 ÎÞÊý¾ÝÖØ¸´É¾³ý¹¦ÄÜ

NSQ¶ÔÓÚ³¬Ê±ÏµÍ³£¬ËüʹÓÃÁËÐÄÌø¼ì²â»úÖÆÈ¥²âÊÔÏû·ÑÕßÊÇ·ñ´æ»î»¹ÊÇËÀÍö¡£ºÜ¶àÔ­Òò»áµ¼ÖÂÎÒÃǵÄconsumerÎÞ·¨Íê³ÉÐÄÌø¼ì²â£¬ËùÒÔÔÚconsumerÖбØÐëÓÐÒ»¸öµ¥¶ÀµÄ²½ÖèÈ·±£ÃݵÈÐÔ¡£

3. ʵ¼ù°²×°¹ý³Ì

±¾ÎĽ«nsq¼¯Èº¾ßÌåµÄ°²×°¹ý³ÌÂÔÈ¥£¬´ó¼Ò¿ÉÒÔ×ÔÐвο¼¹ÙÍø£¬±È½Ï¼òµ¥¡£Õⲿ·Ö½éÉÜϱÊÕßʵÑéµÄÍØÆË£¬ÒÔ¼°nsqadminµÄÏà¹ØÐÅÏ¢¡£

3.1 ÍØÆË½á¹¹

topology

ʵÑé²ÉÓÃ3̨NSQD·þÎñ£¬2̨LOOKUPD·þÎñ¡£

²ÉÓùٷ½ÍƼöµÄÍØÆË£¬ÏûÏ¢·¢²¼µÄ·þÎñºÍNSQDÔÚһ̨Ö÷»ú¡£Ò»¹²5̨»úÆ÷¡£

NSQ»ù±¾Ã»ÓÐÅäÖÃÎļþ£¬ÅäÖÃͨ¹ýÃüÁîÐÐÖ¸¶¨²ÎÊý¡£

Ö÷ÒªÃüÁîÈçÏÂ:

LOOKUPDÃüÁî

 

NSQDÃüÁî

 

¹¤¾ßÀ࣬Ïû·Ñºó´æ´¢µ½±¾µØÎļþ¡£

 

·¢²¼Ò»ÌõÏûÏ¢

 

3.2 nsqadmin

¶ÔStreamsµÄÏêϸÐÅÏ¢½øÐв鿴£¬°üÀ¨NSQD½Úµã£¬¾ßÌåµÄchannel£¬¶ÓÁÐÖеÄÏûÏ¢Êý£¬Á¬½ÓÊýµÈÐÅÏ¢¡£

nsqadmin

channel

ÁгöËùÓеÄNSQD½Úµã:

nodes

ÏûÏ¢µÄͳ¼Æ:

msgs

lookupÖ÷»úµÄÁбí:

hosts

4. ×ܽá

NSQ»ù±¾ºËÐľÍÊǼòµ¥ÐÔ£¬ÊÇÒ»¸ö¼òµ¥µÄ¶ÓÁУ¬ÕâÒâζ×ÅËüºÜÈÝÒ×½øÐйÊÕÏÍÆÀíºÍºÜÈÝÒ×·¢ÏÖbug¡£Ïû·ÑÕß¿ÉÒÔ×ÔÐд¦Àí¹ÊÕÏʼþ¶ø²»»áÓ°ÏìϵͳʣÏÂµÄÆäÓಿ·Ö¡£

ÊÂʵÉÏ£¬¼òµ¥ÐÔÊÇÎÒÃǾö¶¨Ê¹ÓÃNSQµÄÊ×ÒªÒòËØ£¬Õâ·½±ãÓëÎÒÃǵÄÐí¶àÆäËûÈí¼þÒ»Æðά»¤£¬Í¨¹ýÒýÈë¶ÓÁÐʹÎÒÃǵõ½ÁË¿°³ÆÍêÃÀµÄ±íÏÖ£¬Í¨¹ý¶ÓÁÐÉõÖÁÈÃÎÒÃÇÔö¼ÓÁ˼¸¸öÊýÁ¿¼¶µÄÍÌÍÂÁ¿¡£Ô½À´Ô½¶àµÄconsumerÐèÒªÒ»Ì×Ñϸñ¿É¿¿ÐÔºÍ˳ÐòÐÔ±£ÕÏ£¬ÕâÒѾ­³¬¹ýÁËNSQÌṩµÄ¼òµ¥¹¦ÄÜ¡£

½áºÏÎÒÃǵÄÒµÎñϵͳÀ´¿´£¬¶ÔÓÚÎÒÃÇËùÐèÒª´«ÊäµÄ·¢Æ±ÏûÏ¢£¬Ïà¶Ô±È½ÏÃô¸Ð£¬ÎÞ·¨ÈÝÈÌij¸önsqdå´»ú£¬»òÕß´ÅÅÌÎÞ·¨Ê¹ÓõÄÇé¿ö£¬¸Ã½Úµã¶Ñ»ýµÄÏûÏ¢ÎÞ·¨Õһء£ÕâÊÇÎÒÃÇûÓÐÑ¡Ôñ¸ÃÏûÏ¢Öмä¼þµÄÖ÷ÒªÔ­Òò¡£¼òµ¥ÐԺͿɿ¿ÐÔËÆºõ²¢²»ÄÜÍêÈ«Âú×ã¡£Ïà±ÈKafka£¬ops¼ç¸ºÆð¸ü¶à¸ºÔðµÄÔËÓª¡£ÁíÒ»·½Ã棬ËüÓµÓÐÒ»¸ö¿É¸´ÖƵġ¢ÓÐÐòµÄÈÕÖ¾¿ÉÒÔÌṩ¸øÎÒÃǸüºÃµÄ·þÎñ¡£µ«¶ÔÓÚÆäËûÊʺÏNSQµÄconsumer£¬ËüΪÎÒÃÇ·þÎñµÄÏ൱ºÃ£¬ÎÒÃÇÆÚ´ý׿ÌÐø¹®¹ÌËüµÄ¼áʵµÄ»ù´¡¡£

 

 

   
5950 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù