ǰÑÔ
½ÓÉÏһƪµÄ¡¶ÒµÎñ·½¶ÔÏûÏ¢Öмä¼þµÄÐèÇó¡·£¬ÔÚ¿ÉÓÃÐԺͿɿ¿ÐԵĻù´¡ÉÏ£¬ÌÖÂÛ¸÷Öּܹ¹µÄÓÅȱµã£¬×îºó¸ø³ö×Ô¼º¹ØÓÚÏûÏ¢Öмä¼þµÄ¼Ü¹¹Ë¼¿¼¡£
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µÄ¼Ü¹¹¡£
¶øÎÄÄ©¸ø³öÁËÖ®ºóһϵÁÐÌÖÂÛµÄÄÚÈݵļܹ¹»ù´¡£¬¼´Ñ¡Ôñ×îÈÝÒ×ʵÏÖµÄģʽÀ´Ì½ÌÖºóÐøµÄÎÊÌ⣬ÕâÊÇÐèÒªÔÚд֮ºóµÄÎÄÕÂǰ´ï³ÉµÄÒ»¸ö¹²Í¬Ô¼¶¨¡£ |