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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÏûÏ¢Öмä¼þ¼Ü¹¹ÌÖÂÛ
 
À´Ô´:cnblogs ·¢²¼ÓÚ:2017-7-19
  2950  次浏览      30
 

ǰÑÔ

½ÓÉÏһƪµÄ¡¶ÒµÎñ·½¶ÔÏûÏ¢Öмä¼þµÄÐèÇó¡·£¬ÔÚ¿ÉÓÃÐԺͿɿ¿ÐԵĻù´¡ÉÏ£¬ÌÖÂÛ¸÷Öּܹ¹µÄÓÅȱµã£¬×îºó¸ø³ö×Ô¼º¹ØÓÚÏûÏ¢Öмä¼þµÄ¼Ü¹¹Ë¼¿¼¡£

Kafka

Ê×ÏÈ»¹ÊÇÀ´¿´KafkaµÄϵͳ¼Ü¹¹£¨×öÏûÏ¢Öмä¼þÌÓ²»¿ªÒªÈ¥Á˽âKafka£©¡£

Kafka ecosystem°üº¬ÒÔϼ¸¿éÄÚÈÝ£º

Producer

Consumer

Kafka cluster

ZooKeeper

ÆäÖÐZooKeeper³Ðµ±ÁËNameServerµÄ½ÇÉ«£¬Í¬Ê±ÓÃÓÚ±£´æÏµÍ³µÄÔªÊý¾Ý£¬ÌṩѡÖ÷¡¢Ð­µ÷µÈ¹¦ÄÜ¡£

BrokerÊÇÕæÕýµÄ·þÎñ¶Ë£¬ÓÃÓÚ´æ´¢ÏûÏ¢¡£

¿ÉÓÃÐÔ

Ê×ÏÈ¿´ÍⲿÒÀÀµµÄ¿ÉÓÃÐÔ¡£Èç¹ûÄãµÄϵͳ¡°Ç¿ÒÀÀµ¡±ÁËÍⲿµÄÆäËû·þÎñ£¬ÄÇôÄãµÄϵͳµÄ¿ÉÓÃÐÔ±ØÈ»ºÍÍⲿ·þÎñµÄ¿ÉÓÃÐÔÏà¹Ø¡£ £¨Ç¿ÒÀÀµ±íʾ²»¿ÉÍÑÀëÒÀÀµµÄ·þÎñ±£³ÖÕý³£ÔËÐУ©

´ÓÉÏÃæµÄ¼Ü¹¹¿ÉÒÔ¿´³öKafkaÖ»ÊÇÒÀÀµÁËZooKeeper£¬¶øZooKeeper±¾ÉíÊǸ߿ÉÓõģ¨2N+1¸ö½ÚµãµÄZK¼¯Èº¿ÉÒÔÈÝÈÌN¸ö½Úµã¹ÊÕÏ£©£¬ËùÒÔ²»»á¶ÔÕû¸ö¼¯ÈºµÄ¿ÉÓÃÐÔÔì³ÉÓ°Ïì¡£

½Ó×Å¿´Kafka×ÔÉíµÄ¿ÉÓÃÐÔ¡£Ì¸¿ÉÓÃÐÔ±ØÈ»¾Í»áÉæ¼°µ½±¸·ÝÎÊÌ⣬ûÓб¸·Ý¾ÍÒâζ×Å´æÔÚµ¥µãÎÊÌ⣬Ҳ¾ÍûÓи߿ÉÓÿÉÑÔÁË¡£ËùÒÔÎÒÃǾßÌåÀ´¿´Ò»ÏÂKafkaµÄ±¸·Ý²ßÂÔ¡£

(InfoQһƪÌÖÂÛKafka¿ÉÓÃÐÔµÄÎÄÕµÄÅäÌ×)

Kafka ReplicationµÄÊý¾ÝÁ÷ÈçÉÏͼËùʾ£¬´ÓͼÖпÉÒԵõ½µÄһЩÐÅÏ¢£º

·ÖÇøÊÇÓб¸·ÝµÄ£¬Èçtopic1-part1ÉÏͼÖÐÓÐ3¸ö

·ÖÇøµÄ±¸·Ý·Ö²¼ÔÚ²»Í¬µÄBrokerÉÏ£¬ÉÏͼÖÐtopic1-part1·Ö²¼ÔÚbroker1¡¢broker2¡¢broker3ÉÏ£¬ÆäÖÐbroker1ÉϵÄΪLeader

·ÖÇøµÄLeaderÊÇËæ»ú·Ö²¼µÄ£¬ÉÏͼÖÐtopic1-part1µÄLeaderÔÚbroker1£¬topic2-part1µÄLeaderÔÚBrokerÉÏ£¬topic3-part1µÄLeaderµÄBroker4ÉÏ

ÏûϢдÈëµ½Leader·ÖÇø£¬Ö®ºóͨ¹ýLeader·ÖÇø¸´ÖƵ½Follower·ÖÇø

¸üÏêϸµÄKafkaµÄReplicationʵÏÖ¿ÉÒÔÈ¥¿´¹ÙÍø£¨ºóÐøÒ²¿ÉÄܵ¥¶Àдһƪ£©£¬ÕâÀï²»Õ¹¿ª¡£

KafakÕâÑùµÄReplication²ßÂÔ£¬±£Ö¤ÁËÈκÎÒ»¸öBroker³öÏÖ¹ÊÕÏʱ£¬ÏµÍ³ÒÀ¾ÉÊÇ¿ÉÓõġ£Èçbroker1³öÏÖ¹ÊÕÏ£¬´Ëʱ»áÖØÐÂÑ¡¾Ùtopic1-part1µÄLeader£¬Ö®ºó¿ÉÄÜÊÇbroker2»òÕßbroker3ÉϵÄtopic1-part1³ÉΪLeaderÈ»ºó¸ºÔðÏûÏ¢µÄдÈë¡£

ËùÒÔϵͳµÄ¿ÉÓÃÐÔÈ¡¾öÓÚ·ÖÇø±¸·ÝµÄÊýÁ¿£¬Õâ¸ö±¸·ÝÊý¾ÝÊÇ¿ÉÅäÖõġ£

Kafka×ÔÉíͨ¹ýReplicationʵÏÖÁ˸߿ÉÓ㬽áºÏÒÀÀµµÄZooKeeperÒ²ÊǸ߿ÉÓã¬ËùÒÔÕû¸öϵͳµÄ¿ÉÓÃÐԵõ½Á˽Ϻõı£ÕÏ¡£

¿É¿¿ÐÔ

ÔÚÏûÏ¢Öмä¼þÖУ¬¿É¿¿ÐÔÖ÷Òª¾ÍÊÇдÈëµÄÏûÏ¢Ò»¶¨»á±»Ïû·Ñµ½£¬ÌõÏûÏ¢²»»á¶ªÊ§¡£

ÔÚ·Ö²¼Ê½»·¾³ÖÐÏûÏ¢²»¶ªÊ§ÓÐÁ½µã£º

ÏûÏ¢Ôڳɹ¦Ð´ÈëÒ»¸ö½Úµãºó£¬ÏûÏ¢»á×ö³Ö¾Ã»¯

ÏûÏ¢»á±»±¸·Ýµ½ÆäËûÎïÀí½Úµã

Ö»Òª×öµ½ÉÏÃæÁ½µã¾Í¿ÉÒÔ±£Ö¤³ýËùÓнڵ㶼·¢ÉúÓÀ¾ÃÐÔ¹ÊÕϵÄÇé¿öÏÂÊý¾Ý²»»á¶ªÊ§¡£

Kafka BrokerÉÏдÈëµÄÏûÏ¢¶¼»áË¢ÅÌ£¨¿ÉÒÔÊÇÒ첽ˢÅÌÒ²¿ÉÒÔÊÇͬ²½Ë¢ÅÌ£©£¬Ò²»á±¸·Ýµ½ÆäËûÎïÀí½Úµã£¬ËùÒÔÂú×ãÒÔÉÏÁ½µã¡£

Ò첽ˢÅ̽áºÏ¶à½ÚµãµÄ±¸·Ý²ßÂÔÒ²ÄÜÌṩ±È½ÏºÃµÄ¿É¿¿ÐÔ£¬³ý·ÇÊÇ»ú·¿µôµçÖ®ÀàµÄÇé¿öµ¼ÖÂËùÓнڵãδˢÅ̵ÄÊý¾Ý¶ªÊ§¡£

µ±È»£¬ÏûÏ¢¶ªÊ§²»Ò»¶¨Ö¸ÏûÏ¢ÕæµÄ´Ó´ÅÅÌÉϱ»Ïú»Ù»òÕßû±»´æ´¢ÏÂÀ´£¬Èç¹ûÏûÏ¢±»´æ´¢ÏÂÀ´ÁË£¬µ«ÊÇû°ì·¨±»Ïû·Ñ£¬¶Ô¿Í»§¶ËÀ´ËµÒ²ÊÇÏûÏ¢¶ªÊ§¡£±ÈÈçConsumerÊÕµ½ÏûÏ¢ºó½øÐÐACKÖ®ºóÔÙÏû·Ñ£¬Èç¹ûÔÚÏû·Ñ֮ǰCrashÁË£¬ÄÇôÏÂÒ»´ÎÒ²²»»áÄõ½ÕâÌõÏûÏ¢£¬Ò²¿ÉÒÔÀí½â³ÉÏûÏ¢¶ªÁË£¬µ«ÊÇÕâÕâÆªÎÄÕÂÖÐÎÒÃDz»ÌÖÂÛÕâÖÖÇé¿ö¡£

ÆÀ¼Û

Óŵã

²¿·Ö¹¦ÄÜÍйܸøÁËZK£¬×ÔÉíÖ»ÐèÒª¹Ø×¢ÏûÏ¢Ïà¹ØµÄÄÚÈÝ£¬´ÓÕâ¸ö½Ç¶ÈÉÏ˵ÊǼò»¯Á˲¿·ÖÄÚÈÝ

»úÆ÷ÀûÓÃÂʸߡ£´ÓÉÏÃæ±¸·ÝµÄ²ßÂÔ¿ÉÒÔ¿´³ö²»Í¬BrokerÖ®¼äÊý¾ÝÊÇ»¥Îª±¸·ÝµÄ£¬ÕâÑùµÄ½á¹¹Ïà¶ÔÓÚÖ÷´ÓģʽÌá¸ßÁË»úÆ÷ÀûÓÃÂÊ£¨´ó²¿·ÖÖ÷´Óģʽ£¬´Ó¶¼ÊÇÎÞÓÃ״̬µÄ£©

ȱµã

ÒýÈëÁËZK£¬Ôö¼ÓÁËÍⲿÒÀÀµ£¬Ôö¼ÓÁËÔËάµÄ¸´ÔÓÐÔ

±¸·ÝµÄ·½Ê½´Óϵͳ¼Ü¹¹ÉÏ˵£¬»¥ÎªÖ÷±¸ÊǽϺõķ½Ê½£¬µ«ÊÇʵÏÖÉÏ»á±È½Ï¸´ÔÓ£¬Èç¹ûÊÇ×Ô¼ºÈ¥ÊµÏÖÒ»¸öMQ£¬»¹ÊÇ´ÓÖ÷´ÓµÄģʽÈëÊֱȽÏÈÝÒס£

£¨KafkaµÄ±¸·Ý²ßÂÔ¼°»ù²ãWALµÄʵÏ־ͱȽϸ´ÔÓÁË£¬Õâ¸öÒÔºóÓлú»á˵£©

RocketMQ

(ͼƬȡ×ÔRocketMQ_designÎĵµ)

RocketMQÖаüº¬ÒÔϼ¸¿éÄÚÈÝ£º

Producer

Consumer

NameServer

Broker

Producer¼°ConsumerºÍKafkaÏàͬ£¨ËùÓеÄMQ¶¼»áÌṩProducerºÍConsumer£©£¬RocketÒ²ÊÇÓÐBroker¼¯Èº£¬ºÍKafka×î´óµÄÇø±ðÊÇRocketMQ×Ô¼ºÊµÏÖÁËÒ»¸ö¼¯ÈºÄ£Ê½µÄNameServer·þÎñ¡£

¿ÉÓÃÐÔ

RocketMQµÄ¿ÉÓÃÐÔÒ²·ÖΪNameServerºÍBrokerÁ½¿éÌÖÂÛ¡£

NameServerÊǼ¯ÈºÄ£Ê½µÄ£¬ÇÒ¡°¼¸ºõ¡±ÊÇÎÞ״̬µÄ£¬¿ÉÒÔ¼¯Èº²¿Êð£¬ËùÒÔ²»»á´æÔÚ¿ÉÓÃÐÔµÄÎÊÌâ¡££¨ÎÞ״̬Òâζ×Åÿ¸ö½ÚµãÊǶÀÁ¢Ìṩ·þÎñµÄ£¬Ö»ÐèÒª²¿Êð¶à¸ö½Úµã¾Í¿ÉÒÔ½â¾ö¿ÉÓÃÐÔµÄÎÊÌ⣩

BrokerµÄ¿ÉÓÃÐÔÓÖ¿ÉÒÔ·ÖΪÁ½¿é£¬¶ÔÒ»¸öTopic¶øÑÔ£¬Ëü¿ÉÒÔ·Ö²¼ÔÚ¶à¸öMaster BrokerÉÏ£¬ÕâÑùÔÚÆäÖÐÒ»¸öBroker²»¿ÉÓÃÖ®ºó£¬ÆäËûµÄBrokerÒÀ¾É¿ÉÒÔÌṩ·þÎñ£¬²»Ó°ÏìдÈë·þÎñ¡£ÔÚÒ»¸öMaster Broker¹ÒµôÖ®ºóËäÈ»¿ÉÒÔͨ¹ýÆäËûMasterÀ´±£Ö¤Ð´ÈëµÄ¿ÉÓÃÐÔ£¬µ«ÊÇÒѾ­Ð´Èëµ½¹ÊÕÏBrokerµÄ²¿·ÖÊý¾Ý¿ÉÄÜ»áÎÞ·¨Ïû·Ñ¡£RocketMQͨ¹ýMaster-SlaveµÄģʽÀ´½â¾öÕâ¸öÎÊÌâ¡£

MasterÓÀ¾Ã¹ÊÕϺó¿ÉÒÔ½«MasterÉϵĶÁÈ¡ÇëÇó×ªÒÆµ½SlaveÉÏ£¬ÕâÑù¿ÉÒÔ±£Ö¤ÏµÍ³µÄ¿ÉÓÃÐÔ£¨Master-SlaveÖ®¼äÊÇÒì²½¸´ÖƵģ¬Òâζ×Å¿ÉÄÜÉÙÁ¿Êý¾Ý»¹Ã»ÓдÓMaster¸´ÖƵ½Slave£¬Õâ¸öÔÚ¿É¿¿ÐÔ²¿·ÖÌÖÂÛ£©¡£

×ÛºÏÉÏÃæµÄÁ½µã£¬RocketMQÒ²ÌṩÁ˸߿ÉÓõÄÌØÐÔ£¬ÇÒ¿ÉÓÃÐÔֻȡ¾öÓÚ×ÔÉíµÄ·þÎñ£¬Ã»ÓÐÏñKafkaÒ»ÑùÒýÈë¶îÍâµÄ£¬ÏñZKÕâÑùµÄ·þÎñ¡£

¿É¿¿ÐÔ

¿É¿¿ÐÔ´Óµ¥¸öBrokerдÈëÏûÏ¢µÄ¿É¿¿ÐÔºÍÏûÏ¢±¸·ÝÁ½¸ö½Ç¶ÈÈ¥¿¼ÂÇ¡£

RocketMQ²ÉÓÃÁËͬ²½Ë¢Å̵ķ½Ê½À´³Ö¾Ã»¯Ð´ÈëµÄÏûÏ¢¡£

ͬ²½Ë¢Å̺ÍÒ첽ˢÅ̵ÄΨһ²î±ðÊÇÒ첽ˢÅÌдÍêpagecacheÖ±½Ó·µ»Ø£¬¶øÍ¬²½Ë¢ÅÌÐèÒªµÈ´ýË¢ÅÌÍê³ÉÖ®ºó²Å·µ»Ø£¬Ð´ÈëÁ÷³ÌÈçÏ£º

дÈëpagecache£¬Ï̵߳ȴý£¬Í¨ÖªË¢ÅÌÏ߳̽øÐÐË¢ÅÌ

Ë¢ÅÌÏß³ÌË¢Å̺󣬻½ÐÑǰ¶ËµÈ´ýỊ̈߳¬¿ÉÄÜÊÇÒ»ÅúÏß³Ì

ǰ¶ËµÈ´ýÏß³ÌÏëÓû§·µ»ØÐ´Èë½á¹û

£¨Í¬²½Ë¢Å̱ØÈ»ºÄʱҪ±ÈÒ첽ˢÅÌÒª´ó£¬ÈçºÎ½â¾öͬ²½Ë¢ÅÌ´øÀ´µÄÐÔÄܵÄËðºÄºóÃæÔÚ̸£©

²ÉÓÃͬ²½Ë¢Å̵ķ½Ê½£¬´Óµ¥¸ö½ÚµãµÄ½Ç¶È³ö·¢¿É¿¿ÐÔÒª±ÈÒ첽ˢÅ̵ķ½Ê½Òª¸ß£¬ÒòΪֻҪProducerÊÕµ½ÏûϢдÈë³É¹¦µÄ·´À¡£¬ÄÇôÕâÌõÏûÏ¢±ØÈ»Ë¢ÅÌÁË£¬²»»áӦΪµôµçµÈÔ­Òòµ¼ÖÂÏûÏ¢¶ªÊ§¡£

µ¥¸ö½Úµã±ØÈ»»áÃæ¶Ôµ¥µãÎÊÌ⣬µ±Ò»¸ö½ÚµãÓÀ¾Ã¹ÊÕÏÎÞ·¨»Ö¸´Ê±£¬ÄÄÅÂÕâÌõÏûÏ¢ÒѾ­³Ö¾Ã»¯ÁËÒ²ÊÇûÓÐÒâÒåµÄ¡£Ïà¶ÔÓÚKafkaµÄ»¥Îª±¸·ÝµÄ·½Ê½£¬RocketMQ²ÉÓõÄM-SµÄ·½Ê½¡£

M-S·½Ê½¾ÍÓöµ½ÁËÖ÷´Ó¸´ÖÆÑÓ³ÙµÄÎÊÌ⣨Òì²½¸´ÖÆÓÀÔ¶ÊÇÑӳٵģ©£¬ÄÇôÔÚMaster²»¿ÉÓúó¿ÉÄܻᵼÖ²¿·ÖÊý¾Ý¶ªÊ§¡£RocketMQÕë¶ÔÕâÖÖ³¡¾°£¬ÌṩÁËͬ²½Ë«Ð´µÄģʽ¡£

ÆÀ¼Û

Óŵã

ÎÞÍⲿÒÀÀµ£¨Õâ¸öÒÔΪ×ÅÄãµÄϵͳ²»ÐèÒª¶îÍâµÄ·þÎñ£¬ÎÞÂÛ´ÓÔËά»òÕß¿ÉÓÃÐÔ³ö·¢£¬ÕâȷʵÊÇÒ»¸öÓŵ㣩

ȱµã

M-S½á¹¹´øÀ´µÄ»úÆ÷ÀûÓÃÂÊÎÊÌ⣨´ó²¿·ÖʱºòSlave¿ÉÄÜÊÇ¿ÕÏеģ©

ÊÜÏÞÓÚM-SµÄ»úÆ÷ÀûÓÃÂÊ£¬Êµ¼ÊÉϲ»»á²ÉÓÃÒ»Ö÷¶à´ÓµÄģʽ£¬¾ø´ó²¿·ÖÊÇÒ»Ö÷Ò»´Ó£¬²¿·Ö¿É¿¿ÐÔÒªÇóûÄÇô¸ßµÄÒµÎñÉõÖÁ¶¼ÊÇûÓйÒÔØSlaveµÄ¡£ÕâµãµÃµ½Á˰¢ÀïÄÚ²¿¿ª·¢Í¬Ñ§µÄÈ·ÈÏ£¬ÕâÒ²ÊÇM-SģʽµÄȱÏÝ¡£

MQµÄһЩÆäËû¼Ü¹¹

KafkaÒýÈëÁËÍⲿµÄZK£¬¶øRocketMQµÄÖ÷´ÓģʽÓÖ²»¹»¡°ºÃ¡±£¬ÄÇÄܲ»ÄܽáºÏÒ»ÏÂÁ½ÖÖÄ£Ê½ÄØ£¿

½Ó×ÅÀ´ÌÖÂÛ¼¸ÖÖ±ÊÕß¿¼Âǵļܹ¹¡£

½áºÏKafkaºÍRocketMQ

ÕâÖּܹ¹Ö÷Òª¾ÍÊÇÔÚKafkaµÄ»ù´¡ÉÏÒÆ³ý¶ÔZKµÄÒÀÀµ¡£ÒýÈëZKÖ÷ÒªÊÇΪÁ˽â¾ö·Ö²¼Ê½ÏµÍ³µÄЭµ÷ÎÊÌ⣬ÁíÍâKafka»á½«ÔªÊý¾Ý£¨TopicµÄÅäÖá¢Ïû·Ñ½ø¶ÈµÈÐÅÏ¢´æÔÚZKÉÏ£©±£´æÔÚZKÉÏ£¬Í¬Ê±ÌṩNameServerµÄ·þÎñ¡£

ÔÚÕâµãÉϱȽÏÔÞͬRocketMQµÄ×ö·¨¡£ÔªÊý¾ÝÆäʵ¶¼¿ÉÒÔ´æ´¢ÔÚBrokerÉÏ£¬ÒòΪBrokerÊÇÓÐ״̬µÄ£¬ËùÒÔÔÚËüÉÏÃæµÄÏû·Ñ½ø¶ÈµÈÐÅÏ¢ÆäʵºÍÆäËûBrokerÊÇÎ޹صģ¨Èç¹ûÊÇÓÐÏ໥±¸·ÝµÄÐèҪͬ²½Õâ¿éÊý¾Ý£©£¬ËùÒÔNameServer¿ÉÒÔºÜÇáÁ¿¼¶£¬×ö³ÉÎÞ״̬µÄ¡£RocketMQȷʵҲÕâÑùÈ¥×öÁË£¬NameServerµÄ´úÂë´óÔ¼1000ÐУ¬»¹ÊDZȽϼòµ¥µÄ¡£

ÕâÖּܹ¹ÔÚʵÏÖÉÏÓÐÒ»¸ö×î´óµÄÎÊÌâ¾ÍÊÇÒÆ³ýÁËZKÖ®ºó£¬ÄÚ²¿²ÉÓû¥ÎªÖ÷±¸µÄ·½Ê½ÐèÒª¶Ôÿ¸öTopicµÄPartitionÑ¡³öLeader¡£ÔÚÎÞÖÐÐĽڵãµÄ¼Ü¹¹ÖÐ×Ô¼ºÀ´ÊµÏÖÑ¡Ö÷ÊÇÒ»¼þ·Ç³£À§ÄѵÄÊÂÇ飬°üÀ¨ÒªÈ¥´¦ÀíÍøÂç·ÖÇøµÈÎÊÌâ¡£µ±ÎÒÃÇÔÚÒÔÉϼܹ¹ÖÐÈ¡½â¾öÕâ¸öÎÊÌâÆäʵ¿ÉÒÔͨ¹ýһЩÍ×Э£¬±ÈÈç¿ÉÒÔÏÈÑ¡³öÖÐÐĽڵ㣬ȻºóÓÉÖÐÐĽڵãÀ´¸ºÔðÊ£ÓàµÄÑ¡Ö÷Ïà¹ØµÄÎÊÌâ¡£

ÖÐÐĽڵã¿ÉÒÔ¼òµ¥µÄͨ¹ýÈ˹¤Ö¸¶¨µÄ·½Ê½£¬ÖÐÐĽڵ㱾ÉíµÄ¿ÉÓÃÐÔÆäʵ²¢²»ÊǷdz£ÖØÒª£¬ÒòΪÍÑÀëÖÐÐĽڵãϵͳÊÇ¿ÉÒÔÕý³£ÔËÐеģ¬Ö»ÊÇÎÞ·¨½øÐÐÑ¡Ö÷¡£ÏµÍ³µÄ¿ÉÓÃÐÔÈ¡¾öÓëÊÇ·ñÖÐÐĽڵã¹ÊÕÏͬʱÓÐÆäËû½Úµã·¢Éú¹ÊÕÏ£¨ÎþÉüÁËһЩ×Ô¶¯»¯ÔËά£¬ÒòΪûÓп¼ÂÇÖÐÐĽڵãµÄ¸ß¿ÉÓ㬵«ÊdzýÈ¥ÁËÍⲿÒÀÀµ£¬ÏµÍ³Éè¼Æ×ÜÊÇ»áÓÐtradeoff£©¡£

ÒÆ³ýNameServer

ÔÚÉîÈ뿼ÂÇһϣº

ÔªÊý¾ÝÐÅÏ¢ÎÞ·ÇTopicÅäÖá¢Ïû·Ñ½ø¶È£¬Êý¾ÝÁ¿²»»áºÜ´ó£¬ÍêÈ«¿ÉÒÔ´æ´¢Ö±½Ó´æ´¢ÔÚBrokerÉÏ

ÇÒBroker±¾ÉíÒѾ­ÊǶà½ÚµãµÄ£¬ÌìÈ»µÄ¾Í¿ÉÒÔʵÏÖÔªÊý¾ÝµÄ±¸·Ý

½«ÔªÊý¾Ý´æ´¢ÔÚBrokerÉÏÖ®ºó»áÃæÁÙÒ»¸öÎÊÌ⣺ÿһ¸öBroker±ØÐëÓµÓÐËùÓеÄÔªÊý¾Ý£¬ÄÇôËùÓÐBrokerÖ®¼äÐèҪͨÐÅÀ´»ñÈ¡TopicÊý¾Ý£¨Èç¹ûÖ»ÊÇÊý¾Ý¿ÉÓÃУ¬Ö»ÊǼ¸¸öBrokerÖ®¼ä±¸·Ý£©¡£

Õâ¸öÎÊÌâ¿ÉÒÔÒýÈëGossipÖ®ÀàµÄЭÒéÀ´ÊµÏÖ£¬ËùÒԼܹ¹¿ÉÒÔÈ¥µôÉÏÃæµÄNameServer£¬Ñݱä³ÉÈçϽṹ£º

µ½ÕâÀ¼Ü¹¹Æäʵ¾ÍÊ£ÏÂÒ»¸öBroker¼¯Èº£¬BrokerÖ®¼äµÄÊý¾Ý²ÉÓÃKafkaµÄ±¸·Ý²ßÂÔ£¬BrokerÖ®¼äµÄÔªÊý¾Ýͨ¹ýGossipЭÒéÀ´Íê³É¸´ÖÆ¡£

µ½ÕâÀïÆäʵϵͳ¼Ü¹¹·Ç³£¼òµ¥ÁË£¬¸Ð¾õҲûÓпÉÒÔÒÆ³ýºÍ±ä¸üµÄÄÚÈÝÁË£¨±ÊÕßµÄÐÅÑö¡ª¡ª¼òµ¥¼´ÃÀ£©¡£

µ«ÊÇÆäʵһֱºöÂÔÁËÒ»¸öÎÊÌâ¾ÍÊÇÉÏÃæµÄtradeoff£¬×îÖÕ¶ÔÓÚÒ»¸öϵͳ£¬ÎÒÃǿ϶¨Ï£Íû×ã¹»×Ô¶¯»¯£¬ËùÒÔÎÒÃÇ»¹ÊÇҪȥ½â¾öÖÐÐĽڵãµÄ¸ß¿ÉÓÃÎÊÌâ¡£

ÈçºÎÔÚBrokerÖÐÑ¡³öÒ»¸öΨһµÄLeader£¬Õâ¸öÆäʵ¾ÍÊÇ·Ö²¼Ê½ÏµÍ³µÄÒ»ÖÂÐÔÎÊÌ⣬ֻҪÒýÈëÒ»¸ö¿ÉÒÔ½â¾ö·Ö²¼Ê½ÏµÍ³Ò»ÖÂÐÔÎÊÌâµÄЭÒé¼´¿É£¬±ÈÈçRaft¡¢PaxosÖ®Àà¡£

ËùÒÔÕâ¸ö¼Ü¹¹ÀíÂÛÉÏÊÇ¿ÉÐеģº

ÎÞNameServer£»

BrokerÖ®¼ä²ÉÓû¥ÎªÖ÷±¸µÄ·½Ê½À´±£Ö¤ÏµÍ³µÄ¿ÉÓÃÐԺͿɿ¿ÐÔ£»

ÒýÈëGossipЭÒéÀ´¸´ÖÆÔªÊý¾Ý£»

ÒýÈëÒ»ÖÂÐÔЭÒéÀ´½â¾öÑ¡Ö÷µÄÎÊÌ⣻

¼òµ¥µã¿ÉÒÔÓÃÒ»ÖÂÐÔЭÒéÀ´Ñ¡ÖÐÐĽڵ㣬ÓÉÖÐÐĽڵ㸺ÔðЭµ÷ÆäËûÎÊÌâ

±¾ÉíÒ²¿ÉÒÔͨ¹ýÒ»ÖÂÐÔЭÒéÖ±½ÓÀ´½øÐÐÿһ¸öTopicµÄPartitionµÄÑ¡Ö÷ÎÊÌâ

Èç¹ûÎÒÃÇ×Ô¼ºÈ¥Ð´Ò»¸öMQ

֮ǰ˵¹ý¹«ÖÚºÅÏ£Íûдһ¸öÀàËÆ¡¶´ÓÈëÃŵ½XXX¡·µÄϵÁÐÎÄÕ£¬ËùÒÔ²¢²»Ï£ÍûÒ»ÉÏÀ´¾Í½«ÏµÍ³ÊµÏÖÉè¼ÆµÄÌ«¸´ÔÓ£¬ÒÔÖÂÓÚ×Ô¼º¶¼ÎÞ·¨ÊµÏÖ¡£»¹ÊÇÑ¡ÔñÒ»¸ö¸ü¼òµ¥µÄ¼Ü¹¹À´±ãÓÚÎÒÃÇ̽ÌÖʵÏÖMQµÄºËÐÄÎÊÌâÒÔ¼°ÕæµÄÀûÓÃÒµÎñʱ¼äÈ¥×öһЩ³¢ÊÔ¡£

ËùÒÔºóÐøµÄÎÄÕ»áÔÚÒÔϵļܹ¹µÄ»ù´¡ÉÏÈ¥Õ¹¿ª£¨Õâ¸ö¼Ü¹¹Ö®ÉϵÄÄÚÈݽ²ÍêºóÔÙ¿ªÊ¼ÒýÈë¸÷ÖÖЭÒéÀ´¼ò»¯¼Ü¹¹»òÌáÉýϵͳµÄ¿ÉÓÃÐÔ¡¢¿É¿¿ÐÔ£©¡£

ÀàËÆRocketMQµÄ¼Ü¹¹£¬²¢×ö¼ò»¯£º

µ¥½ÚµãµÄNameServer£¨NameServer×ÔÉíµÄ·þÎñ·¢ÏÖ¿ÉÒÔͨ¹ýDNSÈ¥×ö£©

BrokerÖ®¼ä²ÉÓÃÖ÷´ÓµÄģʽ

ÔªÊý¾Ý´æ´¢ÔÚBrokerÉÏ£¬»ã±¨µ½NameServer£¨Ã¿¸öBrokerÖ»´æ´¢²¿·ÖÔªÊý¾Ý£¬ÔÚNameServerÉϾۺϣ©

Õâ¸ö¼Ü¹¹ÊµÏÖÉÏ»á±È½Ï¼òµ¥£¬µ«ÊÇÒÀ¾ÉÓнϸߵĿÉÓÃÐԺͿɿ¿ÐÔ¡£ÒòΪ±¾ÉíNameServerÊÇÎÞ״̬µÄ£¬ÇÒNameServerµÄ¹ÊÕϲ»»áÓ°ÏìϵͳºËÐĵķþÎñ£¨ÏûÏ¢µÄ·¢ËͺÍÏûÏ¢£©£¬ËùÒÔ¿ÉÒÔÈÝÈ̵¥½Úµã¡£BrokerÀàËÆRocketMQµÄʵÏÖ£¬Í¬²½Ë¢Å̼ÓÉÏÖ÷±¸µÄģʽҲÊÇÄÜÌṩ±È½ÏºÃµÄ¿ÉÓÃÐԺͿɿ¿ÐÔ£¬Ö»ÊÇÀûÓÃÂʲ»¹»£¨»ùÓÚдÕâһϵÁÐÎÄÕµijõÖÔ£¬¾ÍÏȲ»¿¼ÂÇʹÓÃÂʵÄÎÊÌâÁË£©¡£

½áÓï

±¾ÆªÖ÷ÒªÊǽéÉÜKafkaºÍRocketMQµÄ¼Ü¹¹ÒÔ¼°ÌÖÂÛ¿ÉÓÃÐԺͿɿ¿ÐÔµÄʵÏÖ£¬×ÛºÏÁ½Õ߸ø³ö±ÊÕß˼¿¼µÄMQµÄ¼Ü¹¹¡£

¶øÎÄÄ©¸ø³öÁËÖ®ºóһϵÁÐÌÖÂÛµÄÄÚÈݵļܹ¹»ù´¡£¬¼´Ñ¡Ôñ×îÈÝÒ×ʵÏÖµÄģʽÀ´Ì½ÌÖºóÐøµÄÎÊÌ⣬ÕâÊÇÐèÒªÔÚд֮ºóµÄÎÄÕÂǰ´ï³ÉµÄÒ»¸ö¹²Í¬Ô¼¶¨¡£

   
2950 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

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

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

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