±à¼ÍƼö: |
±¾ÎÄÊ×ÏÈÒý³öÏûÏ¢Öмä¼þͨ³£ÐèÒª½â¾öÄÄЩÎÊÌâ,ÔÚ½â¾öÕâЩÎÊÌâµ±ÖлáÓöµ½Ê²Ã´À§ÄÑ,È»ºó±¾ÎĽ«½éÉÜRocketMQµÄ¼Ü¹¹Éè¼Æ£¬ÈöÁÕß¿ìËÙÁ˽âRocketMQ¡£
±¾ÎÄÀ´×ÔÓÚ°¢ÀïÖмä¼þÍŶӲ©¿Í,ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
ÏûÏ¢Öмä¼þÐèÒª½â¾öÄÄЩÎÊÌ⣿
Publish/Subscribe
·¢²¼¶©ÔÄÊÇÏûÏ¢Öмä¼þµÄ×î»ù±¾¹¦ÄÜ£¬Ò²ÊÇÏà¶ÔÓÚ´«Í³RPCͨÐŶøÑÔ¡£Ôڴ˲»ÔÙÏêÊö¡£
Message Priority
¹æ·¶ÖÐÃèÊöµÄÓÅÏȼ¶ÊÇÖ¸ÔÚÒ»¸öÏûÏ¢¶ÓÁÐÖУ¬Ã¿ÌõÏûÏ¢¶¼Óв»Í¬µÄÓÅÏȼ¶£¬Ò»°ãÓÃÕûÊýÀ´ÃèÊö£¬ÓÅÏȼ¶¸ßµÄÏûÏ¢ÏÈͶµÝ£¬Èç¹ûÏûÏ¢ÍêÈ«ÔÚÒ»¸öÄÚ´æ¶ÓÁÐÖУ¬ÄÇôÔÚͶµÝǰ¿ÉÒÔ°´ÕÕÓÅÏȼ¶ÅÅÐò£¬ÁîÓÅÏȼ¶¸ßµÄÏÈͶµÝ¡£
ÓÉÓÚRocketMQËùÓÐÏûÏ¢¶¼Êdz־û¯µÄ£¬ËùÒÔÈç¹û°´ÕÕÓÅÏȼ¶À´ÅÅÐò£¬¿ªÏú»á·Ç³£´ó£¬Òò´ËRocketMQûÓÐÌØÒâÖ§³ÖÏûÏ¢ÓÅÏȼ¶£¬µ«ÊÇ¿ÉÒÔͨ¹ý±äͨµÄ·½Ê½ÊµÏÖÀàËÆ¹¦ÄÜ£¬¼´µ¥¶ÀÅäÖÃÒ»¸öÓÅÏȼ¶¸ßµÄ¶ÓÁУ¬ºÍÒ»¸öÆÕͨÓÅÏȼ¶µÄ¶ÓÁУ¬
½«²»Í¬ÓÅÏȼ¶·¢Ë͵½²»Í¬¶ÓÁм´¿É¡£
¶ÔÓÚÓÅÏȼ¶ÎÊÌ⣬¿ÉÒÔ¹éÄÉΪ2Àࣺ
1.Ö»Òª´ïµ½ÓÅÏȼ¶Ä¿µÄ¼´¿É£¬²»ÊÇÑϸñÒâÒåÉϵÄÓÅÏȼ¶£¬Í¨³£½«ÓÅÏȼ¶»®·ÖΪ¸ß¡¢ÖС¢µÍ£¬»òÕßÔٶ༸¸ö¼¶±ð¡£Ã¿¸öÓÅÏȼ¶¿ÉÒÔÓò»Í¬µÄtopic±íʾ£¬·¢ÏûϢʱ£¬Ö¸¶¨²»Í¬µÄtopicÀ´±íʾÓÅÏȼ¶£¬ÕâÖÖ·½Ê½¿ÉÒÔ½â¾ö¾ø´ó²¿·ÖµÄÓÅÏȼ¶ÎÊÌ⣬µ«ÊǶÔÒµÎñµÄÓÅÏȼ¶¾«È·ÐÔ×öÁËÍ×С£
2.ÑϸñµÄÓÅÏȼ¶£¬ÓÅÏȼ¶ÓÃÕûÊý±íʾ£¬ÀýÈç0 ~ 65535£¬ÕâÖÖÓÅÏȼ¶ÎÊÌâÒ»°ãʹÓò»Í¬topic½â¾ö¾Í·Ç³£²»ºÏÊÊ¡£Èç¹ûÒªÈÃMQ½â¾ö´ËÎÊÌ⣬»á¶ÔMQµÄÐÔÄÜÔì³É·Ç³£´óµÄÓ°Ïì¡£ÕâÀïҪȷ±£Ò»µã£¬ÒµÎñÉÏÊÇ·ñȷʵÐèÒªÕâÖÖÑϸñµÄÓÅÏȼ¶£¬Èç¹û½«ÓÅÏȼ¶Ñ¹Ëõ³É¼¸¸ö£¬¶ÔÒµÎñµÄÓ°ÏìÓжà´ó£¿
Message Order
ÏûÏ¢ÓÐÐòÖ¸µÄÊÇÒ»ÀàÏûÏ¢Ïû·Ñʱ£¬Äܰ´ÕÕ·¢Ë͵Ä˳ÐòÀ´Ïû·Ñ¡£ÀýÈ磺һ¸ö¶©µ¥²úÉúÁË3ÌõÏûÏ¢£¬·Ö±ðÊǶ©µ¥´´½¨£¬¶©µ¥¸¶¿î£¬¶©µ¥Íê³É¡£Ïû·Ñʱ£¬Òª°´ÕÕÕâ¸ö˳ÐòÏû·Ñ²ÅÄÜÓÐÒâÒå¡£µ«ÊÇͬʱ¶©µ¥Ö®¼äÊÇ¿ÉÒÔ²¢ÐÐÏû·ÑµÄ¡£
RocketMQ¿ÉÒÔÑϸñµÄ±£Ö¤ÏûÏ¢ÓÐÐò¡£
Message Filter
Broker¶ËÏûÏ¢¹ýÂË
ÔÚBrokerÖУ¬°´ÕÕConsumerµÄÒªÇó×ö¹ýÂË£¬ÓŵãÊǼõÉÙÁ˶ÔÓÚConsumerÎÞÓÃÏûÏ¢µÄÍøÂç´«Êä¡£
ȱµãÊÇÔö¼ÓÁËBrokerµÄ¸ºµ££¬ÊµÏÖÏà¶Ô¸´ÔÓ¡£
1¡¢ÌÔ±¦NotifyÖ§³Ö¶àÖÖ¹ýÂË·½Ê½£¬°üº¬Ö±½Ó°´ÕÕÏûÏ¢ÀàÐ͹ýÂË£¬Áé»îµÄÓï·¨±í´ïʽ¹ýÂË£¬¼¸ºõ¿ÉÒÔÂú×ã×î¿Á¿ÌµÄ¹ýÂËÐèÇó¡£
2.ÌÔ±¦RocketMQÖ§³Ö°´ÕÕ¼òµ¥µÄMessage Tag¹ýÂË£¬Ò²Ö§³Ö°´ÕÕMessage
Header¡¢body½øÐйýÂË¡£
3.CORBA Notification¹æ·¶ÖÐÒ²Ö§³ÖÁé»îµÄÓï·¨±í´ïʽ¹ýÂË¡£
Consumer¶ËÏûÏ¢¹ýÂË
ÕâÖÖ¹ýÂË·½Ê½¿ÉÓÉÓ¦ÓÃÍêÈ«×Ô¶¨ÒåʵÏÖ£¬µ«ÊÇȱµãÊǺܶàÎÞÓõÄÏûÏ¢Òª´«Êäµ½Consumer¶Ë¡£
Message Persistence
ÏûÏ¢Öмä¼þͨ³£²ÉÓõļ¸Öֳ־û¯·½Ê½£º
1.³Ö¾Ã»¯µ½Êý¾Ý¿â£¬ÀýÈçMysql¡£
2.³Ö¾Ã»¯µ½KV´æ´¢£¬ÀýÈçlevelDB¡¢²®¿ËÀûDBµÈKV´æ´¢ÏµÍ³¡£
3.Îļþ¼Ç¼ÐÎʽ³Ö¾Ã»¯£¬ÀýÈçKafka£¬RocketMQ
4.¶ÔÄÚ´æÊý¾Ý×öÒ»¸ö³Ö¾Ã»¯¾µÏñ£¬ÀýÈçbeanstalkd£¬VisiNotify
5.(1)¡¢(2)¡¢(3)ÈýÖֳ־û¯·½Ê½¶¼¾ßÓн«ÄÚ´æ¶ÓÁÐBuffer½øÐÐÀ©Õ¹µÄÄÜÁ¦£¬(4)Ö»ÊÇÒ»¸öÄÚ´æµÄ¾µÏñ£¬×÷ÓÃÊǵ±Broker¹ÒµôÖØÆôºóÈÔÈ»Äܽ«Ö®Ç°ÄÚ´æµÄÊý¾Ý»Ö¸´³öÀ´¡£
JMSÓëCORBA Notification¹æ·¶Ã»ÓÐÃ÷ȷ˵Ã÷ÈçºÎ³Ö¾Ã»¯£¬µ«Êdz־û¯²¿·ÖµÄÐÔÄÜÖ±½Ó¾ö¶¨ÁËÕû¸öÏûÏ¢Öмä¼þµÄÐÔÄÜ¡£
RocketMQ³ä·ÖÀûÓÃLinuxÎļþϵͳÄÚ´æcacheÀ´Ìá¸ßÐÔÄÜ¡£
Message Reliablity
Ó°ÏìÏûÏ¢¿É¿¿ÐԵļ¸ÖÖÇé¿ö£º
1.BrokerÕý³£¹Ø±Õ
2.BrokerÒì³£Crash
3.OS Crash
4.»úÆ÷µôµç£¬µ«ÊÇÄÜÁ¢¼´»Ö¸´¹©µçÇé¿ö¡£
5.»úÆ÷ÎÞ·¨¿ª»ú£¨¿ÉÄÜÊÇcpu¡¢Ö÷°å¡¢ÄÚ´æµÈ¹Ø¼üÉ豸Ë𻵣©
6.´ÅÅÌÉ豸Ë𻵡£
(1)¡¢(2)¡¢(3)¡¢(4)ËÄÖÖÇé¿ö¶¼ÊôÓÚÓ²¼þ×ÊÔ´¿ÉÁ¢¼´»Ö¸´Çé¿ö£¬RocketMQÔÚÕâËÄÖÖÇé¿öÏÂÄܱ£Ö¤ÏûÏ¢²»¶ª£¬»òÕß¶ªÊ§ÉÙÁ¿Êý¾Ý£¨ÒÀÀµË¢ÅÌ·½Ê½ÊÇͬ²½»¹ÊÇÒì²½£©¡£
(5)¡¢(6)ÊôÓÚµ¥µã¹ÊÕÏ£¬ÇÒÎÞ·¨»Ö¸´£¬Ò»µ©·¢Éú£¬Ôڴ˵¥µãÉϵÄÏûϢȫ²¿¶ªÊ§¡£RocketMQÔÚÕâÁ½ÖÖÇé¿öÏ£¬Í¨¹ýÒì²½¸´ÖÆ£¬¿É±£Ö¤99%µÄÏûÏ¢²»¶ª£¬µ«ÊÇÈÔÈ»»áÓм«ÉÙÁ¿µÄÏûÏ¢¿ÉÄܶªÊ§¡£Í¨¹ýͬ²½Ë«Ð´¼¼Êõ¿ÉÒÔÍêÈ«±ÜÃâµ¥µã£¬Í¬²½Ë«Ð´ÊƱػáÓ°ÏìÐÔÄÜ£¬Êʺ϶ÔÏûÏ¢¿É¿¿ÐÔÒªÇ󼫸ߵij¡ºÏ£¬ÀýÈçÓëMoneyÏà¹ØµÄÓ¦Óá£
RocketMQ´Ó3.0°æ±¾¿ªÊ¼Ö§³Öͬ²½Ë«Ð´¡£
Low Latency Messaging
ÔÚÏûÏ¢²»¶Ñ»ýÇé¿öÏ£¬ÏûÏ¢µ½´ïBrokerºó£¬ÄÜÁ¢¿Ìµ½´ïConsumer¡£
RocketMQʹÓó¤ÂÖѯPull·½Ê½£¬¿É±£Ö¤ÏûÏ¢·Ç³£ÊµÊ±£¬ÏûϢʵʱÐÔ²»µÍÓÚPush¡£
At least Once
ÊÇָÿ¸öÏûÏ¢±ØÐëͶµÝÒ»´Î¡£
RocketMQ ConsumerÏÈpullÏûÏ¢µ½±¾µØ£¬Ïû·ÑÍê³Éºó£¬²ÅÏò·þÎñÆ÷·µ»Øack£¬Èç¹ûûÓÐÏû·ÑÒ»¶¨²»»áackÏûÏ¢£¬ËùÒÔRocketMQ¿ÉÒԺܺõÄÖ§³Ö´ËÌØÐÔ¡£
Exactly Only Once
·¢ËÍÏûÏ¢½×¶Î£¬²»ÔÊÐí·¢ËÍÖØ¸´µÄÏûÏ¢¡£
Ïû·ÑÏûÏ¢½×¶Î£¬²»ÔÊÐíÏû·ÑÖØ¸´µÄÏûÏ¢¡£
Ö»ÓÐÒÔÉÏÁ½¸öÌõ¼þ¶¼Âú×ãÇé¿öÏ£¬²ÅÄÜÈÏΪÏûÏ¢ÊÇ¡°Exactly Only Once¡±£¬¶øÒªÊµÏÖÒÔÉÏÁ½µã£¬ÔÚ·Ö²¼Ê½ÏµÍ³»·¾³Ï£¬²»¿É±ÜÃâÒª²úÉú¾Þ´óµÄ¿ªÏú¡£ËùÒÔRocketMQΪÁË×·Çó¸ßÐÔÄÜ£¬²¢²»±£Ö¤´ËÌØÐÔ£¬ÒªÇóÔÚÒµÎñÉϽøÐÐÈ¥ÖØ£¬Ò²¾ÍÊÇ˵Ïû·ÑÏûÏ¢Òª×öµ½ÃݵÈÐÔ¡£RocketMQËäÈ»²»ÄÜÑϸñ±£Ö¤²»Öظ´£¬µ«ÊÇÕý³£Çé¿öϺÜÉÙ»á³öÏÖÖØ¸´·¢ËÍ¡¢Ïû·ÑÇé¿ö£¬Ö»ÓÐÍøÂçÒì³££¬ConsumerÆôÍ£µÈÒì³£Çé¿öÏ»á³öÏÖÏûÏ¢ÖØ¸´¡£
BrokerµÄBufferÂúÁËÔõô°ì£¿
BrokerµÄBufferͨ³£Ö¸µÄÊÇBrokerÖÐÒ»¸ö¶ÓÁеÄÄÚ´æBuffer´óС£¬ÕâÀàBufferͨ³£´óСÓÐÏÞ£¬Èç¹ûBufferÂúÁËÒÔºóÔõô°ì£¿
ÏÂÃæÊÇCORBA Notification¹æ·¶Öд¦Àí·½Ê½£º
1.RejectNewEvents ¾Ü¾øÐÂÀ´µÄÏûÏ¢£¬ÏòProducer·µ»ØRejectNewEvents´íÎóÂë¡£
2.°´ÕÕÌØ¶¨²ßÂÔ¶ªÆúÒÑÓÐÏûÏ¢
- AnyOrder - Any event may be discarded on overflow.
- This is the default setting for this property.
- FifoOrder - The first event received will be the
first discarded.
- LifoOrder - The last event received will be the
first discarded.
- PriorityOrder - Events should be discarded in
priority order, such that lower priority events
will be discarded before higher priority events.
- DeadlineOrder - Events should be discarded in
the order of shortest expiry deadline first
RocketMQûÓÐÄÚ´æBuffer¸ÅÄRocketMQµÄ¶ÓÁж¼Êdz־û¯´ÅÅÌ£¬Êý¾Ý¶¨ÆÚÇå³ý¡£
¶ÔÓÚ´ËÎÊÌâµÄ½â¾ö˼·£¬RocketMQͬÆäËûMQÓзdz£ÏÔÖøµÄÇø±ð£¬RocketMQµÄÄÚ´æBuffer³éÏó³ÉÒ»¸öÎÞÏÞ³¤¶ÈµÄ¶ÓÁУ¬²»¹ÜÓжàÉÙÊý¾Ý½øÀ´¶¼ÄÜ×°µÃÏ£¬Õâ¸öÎÞÏÞÊÇÓÐǰÌáµÄ£¬Broker»á¶¨ÆÚɾ³ý¹ýÆÚµÄÊý¾Ý£¬ÀýÈçBrokerÖ»±£´æ3ÌìµÄÏûÏ¢£¬ÄÇôÕâ¸öBufferËäÈ»³¤¶ÈÎÞÏÞ£¬µ«ÊÇ3ÌìǰµÄÊý¾Ý»á±»´Ó¶Óβɾ³ý¡£
´ËÎÊÌâµÄ±¾ÖÊÔÒòÊÇÍøÂçµ÷ÓôæÔÚ²»È·¶¨ÐÔ£¬¼´¼È²»³É¹¦Ò²²»Ê§°ÜµÄµÚÈýÖÖ״̬£¬ËùÒԲŲúÉúÁËÏûÏ¢ÖØ¸´ÐÔÎÊÌâ¡£
»ØËÝÏû·Ñ
»ØËÝÏû·ÑÊÇÖ¸ConsumerÒѾÏû·Ñ³É¹¦µÄÏûÏ¢£¬ÓÉÓÚÒµÎñÉÏÐèÇóÐèÒªÖØÐÂÏû·Ñ£¬ÒªÖ§³Ö´Ë¹¦ÄÜ£¬BrokerÔÚÏòConsumerͶµÝ³É¹¦ÏûÏ¢ºó£¬ÏûÏ¢ÈÔÈ»ÐèÒª±£Áô¡£²¢ÇÒÖØÐÂÏû·ÑÒ»°ãÊǰ´ÕÕʱ¼äά¶È£¬ÀýÈçÓÉÓÚConsumerϵͳ¹ÊÕÏ£¬»Ö¸´ºóÐèÒªÖØÐÂÏû·Ñ1СʱǰµÄÊý¾Ý£¬ÄÇôBrokerÒªÌṩһÖÖ»úÖÆ£¬¿ÉÒÔ°´ÕÕʱ¼äά¶ÈÀ´»ØÍËÏû·Ñ½ø¶È¡£
RocketMQÖ§³Ö°´ÕÕʱ¼ä»ØËÝÏû·Ñ£¬Ê±¼äά¶È¾«È·µ½ºÁÃ룬¿ÉÒÔÏòǰ»ØËÝ£¬Ò²¿ÉÒÔÏòºó»ØËÝ¡£
ÏûÏ¢¶Ñ»ý
ÏûÏ¢Öмä¼þµÄÖ÷Òª¹¦ÄÜÊÇÒì²½½âñ»¹ÓиöÖØÒª¹¦ÄÜÊǵ²×¡Ç°¶ËµÄÊý¾Ýºé·å£¬±£Ö¤ºó¶ËϵͳµÄÎȶ¨ÐÔ£¬Õâ¾ÍÒªÇóÏûÏ¢Öмä¼þ¾ßÓÐÒ»¶¨µÄÏûÏ¢¶Ñ»ýÄÜÁ¦£¬ÏûÏ¢¶Ñ»ý·ÖÒÔÏÂÁ½ÖÖÇé¿ö£º
1.ÏûÏ¢¶Ñ»ýÔÚÄÚ´æBuffer£¬Ò»µ©³¬¹ýÄÚ´æBuffer£¬¿ÉÒÔ¸ù¾ÝÒ»¶¨µÄ¶ªÆú²ßÂÔÀ´¶ªÆúÏûÏ¢£¬ÈçCORBA
Notification¹æ·¶ÖÐÃèÊö¡£ÊʺÏÄÜÈÝÈ̶ªÆúÏûÏ¢µÄÒµÎñ£¬ÕâÖÖÇé¿öÏûÏ¢µÄ¶Ñ»ýÄÜÁ¦Ö÷ÒªÔÚÓÚÄÚ´æBuffer´óС£¬¶øÇÒÏûÏ¢¶Ñ»ýºó£¬ÐÔÄÜϽµ²»»áÌ«´ó£¬ÒòΪÄÚ´æÖÐÊý¾Ý¶àÉÙ¶ÔÓÚ¶ÔÍâÌṩµÄ·ÃÎÊÄÜÁ¦Ó°ÏìÓÐÏÞ¡£
2.ÏûÏ¢¶Ñ»ýµ½³Ö¾Ã»¯´æ´¢ÏµÍ³ÖУ¬ÀýÈçDB£¬KV´æ´¢£¬Îļþ¼Ç¼ÐÎʽ¡£
µ±ÏûÏ¢²»ÄÜÔÚÄÚ´æCacheÃüÖÐʱ£¬Òª²»¿É±ÜÃâµÄ·ÃÎÊ´ÅÅÌ£¬»á²úÉú´óÁ¿¶ÁIO£¬¶ÁIOµÄÍÌÍÂÁ¿Ö±½Ó¾ö¶¨ÁËÏûÏ¢¶Ñ»ýºóµÄ·ÃÎÊÄÜÁ¦¡£
ÆÀ¹ÀÏûÏ¢¶Ñ»ýÄÜÁ¦Ö÷ÒªÓÐÒÔÏÂËĵ㣺
1.ÏûÏ¢Äܶѻý¶àÉÙÌõ£¬¶àÉÙ×Ö½Ú£¿¼´ÏûÏ¢µÄ¶Ñ»ýÈÝÁ¿¡£
2.ÏûÏ¢¶Ñ»ýºó£¬·¢ÏûÏ¢µÄÍÌÍÂÁ¿´óС£¬ÊÇ·ñ»áÊܶѻýÓ°Ï죿
3.ÏûÏ¢¶Ñ»ýºó£¬Õý³£Ïû·ÑµÄConsumerÊÇ·ñ»áÊÜÓ°Ï죿
4.ÏûÏ¢¶Ñ»ýºó£¬·ÃÎʶѻýÔÚ´ÅÅ̵ÄÏûϢʱ£¬ÍÌÍÂÁ¿Óжà´ó£¿
·Ö²¼Ê½ÊÂÎñ
ÒÑÖªµÄ¼¸¸ö·Ö²¼Ê½ÊÂÎñ¹æ·¶£¬ÈçXA£¬JTAµÈ¡£ÆäÖÐXA¹æ·¶±»¸÷´óÊý¾Ý¿â³§É̹㷺֧³Ö£¬ÈçOracle£¬MysqlµÈ¡£ÆäÖÐXAµÄTMʵÏÖٮٮÕßÈçOracle
Tuxedo£¬ÔÚ½ðÈÚ¡¢µçÐŵÈÁìÓò±»¹ã·ºÓ¦Óá£
·Ö²¼Ê½ÊÂÎñÉæ¼°µ½Á½½×¶ÎÌá½»ÎÊÌ⣬ÔÚÊý¾Ý´æ´¢·½ÃæµÄ·½Ãæ±ØÈ»ÐèÒªKV´æ´¢µÄÖ§³Ö£¬ÒòΪµÚ¶þ½×¶ÎµÄÌá½»»Ø¹öÐèÒªÐÞ¸ÄÏûϢ״̬£¬Ò»¶¨Éæ¼°µ½¸ù¾ÝKeyÈ¥²éÕÒMessageµÄ¶¯×÷¡£RocketMQÔÚµÚ¶þ½×¶ÎÈÆ¹ýÁ˸ù¾ÝKeyÈ¥²éÕÒMessageµÄÎÊÌ⣬²ÉÓõÚÒ»½×¶Î·¢ËÍPreparedÏûϢʱ£¬Äõ½ÁËÏûÏ¢µÄOffset£¬µÚ¶þ½×¶Îͨ¹ýOffsetÈ¥·ÃÎÊÏûÏ¢£¬²¢ÐÞ¸Ä״̬£¬Offset¾ÍÊÇÊý¾ÝµÄµØÖ·¡£
RocketMQÕâÖÖʵÏÖÊÂÎñ·½Ê½£¬Ã»ÓÐͨ¹ýKV´æ´¢×ö£¬¶øÊÇͨ¹ýOffset·½Ê½£¬´æÔÚÒ»¸öÏÔÖøÈ±ÏÝ£¬¼´Í¨¹ýOffset¸ü¸ÄÊý¾Ý£¬»áÁîϵͳµÄÔàÒ³¹ý¶à£¬ÐèÒªÌØ±ð¹Ø×¢¡£
¶¨Ê±ÏûÏ¢
¶¨Ê±ÏûÏ¢ÊÇÖ¸ÏûÏ¢·¢µ½Brokerºó£¬²»ÄÜÁ¢¿Ì±»ConsumerÏû·Ñ£¬Òªµ½Ìض¨µÄʱ¼äµã»òÕߵȴýÌØ¶¨µÄʱ¼äºó²ÅÄܱ»Ïû·Ñ¡£
Èç¹ûÒªÖ§³ÖÈÎÒâµÄʱ¼ä¾«¶È£¬ÔÚBroker²ãÃæ£¬±ØÐëÒª×öÏûÏ¢ÅÅÐò£¬Èç¹ûÔÙÉæ¼°µ½³Ö¾Ã»¯£¬ÄÇôÏûÏ¢ÅÅÐòÒª²»¿É±ÜÃâµÄ²úÉú¾Þ´óÐÔÄÜ¿ªÏú¡£
RocketMQÖ§³Ö¶¨Ê±ÏûÏ¢£¬µ«ÊDz»Ö§³ÖÈÎÒâʱ¼ä¾«¶È£¬Ö§³ÖÌØ¶¨µÄlevel£¬ÀýÈ綨ʱ5s£¬10s£¬1mµÈ¡£
ÏûÏ¢ÖØÊÔ
ConsumerÏû·ÑÏûϢʧ°Üºó£¬ÒªÌṩһÖÖÖØÊÔ»úÖÆ£¬ÁîÏûÏ¢ÔÙÏû·ÑÒ»´Î¡£ConsumerÏû·ÑÏûϢʧ°Üͨ³£¿ÉÒÔÈÏΪÓÐÒÔϼ¸ÖÖÇé¿ö£º
ÓÉÓÚÏûÏ¢±¾ÉíµÄÔÒò£¬ÀýÈç·´ÐòÁл¯Ê§°Ü£¬ÏûÏ¢Êý¾Ý±¾ÉíÎÞ·¨´¦Àí£¨ÀýÈç»°·Ñ³äÖµ£¬µ±Ç°ÏûÏ¢µÄÊÖ»úºÅ±»×¢Ïú£¬ÎÞ·¨³äÖµ£©µÈ¡£ÕâÖÖ´íÎóͨ³£ÐèÒªÌø¹ýÕâÌõÏûÏ¢£¬ÔÙÏû·ÑÆäËûÏûÏ¢£¬¶øÕâÌõʧ°ÜµÄÏûÏ¢¼´Ê¹Á¢¿ÌÖØÊÔÏû·Ñ£¬99%Ò²²»³É¹¦£¬ËùÒÔ×îºÃÌṩһÖÖ¶¨Ê±ÖØÊÔ»úÖÆ£¬¼´¹ý10sÃëºóÔÙÖØÊÔ¡£
ÓÉÓÚÒÀÀµµÄÏÂÓÎÓ¦Ó÷þÎñ²»¿ÉÓã¬ÀýÈçdbÁ¬½Ó²»¿ÉÓã¬ÍâÏµÍ³ÍøÂç²»¿É´ïµÈ¡£Óöµ½ÕâÖÖ´íÎ󣬼´Ê¹Ìø¹ýµ±Ç°Ê§°ÜµÄÏûÏ¢£¬Ïû·ÑÆäËûÏûϢͬÑùÒ²»á±¨´í¡£ÕâÖÖÇé¿ö½¨ÒéÓ¦ÓÃsleep
30s£¬ÔÙÏû·ÑÏÂÒ»ÌõÏûÏ¢£¬ÕâÑù¿ÉÒÔ¼õÇáBrokerÖØÊÔÏûÏ¢µÄѹÁ¦¡£
RocketMQ Overview
RocketMQÊÇ·ñ½â¾öÁËÉÏÊöÏûÏ¢Öмä¼þÃæÁÙµÄÎÊÌ⣬½ÓÏÂÀ´ÈÃÎÒÃÇһ̽¾¿¾¹¡£
RocketMQ ÊÇʲô£¿

ÉÏͼÊÇÒ»¸öµäÐ͵ÄÏûÏ¢Öмä¼þÊÕ·¢ÏûÏ¢µÄÄ£ÐÍ£¬RocketMQÒ²ÊÇÕâÑùµÄÉè¼Æ£¬¼òµ¥ËµÀ´£¬RocketMQ¾ßÓÐÒÔÏÂÌØµã£º
ÊÇÒ»¸ö¶ÓÁÐÄ£Ð͵ÄÏûÏ¢Öмä¼þ£¬¾ßÓиßÐÔÄÜ¡¢¸ß¿É¿¿¡¢¸ßʵʱ¡¢·Ö²¼Ê½Ìص㡣
Producer¡¢Consumer¡¢¶ÓÁж¼¿ÉÒÔ·Ö²¼Ê½¡£
ProducerÏòһЩ¶ÓÁÐÂÖÁ÷·¢ËÍÏûÏ¢£¬¶ÓÁм¯ºÏ³ÆÎªTopic£¬ConsumerÈç¹û×ö¹ã²¥Ïû·Ñ£¬ÔòÒ»¸öconsumerʵÀýÏû·ÑÕâ¸öTopic¶ÔÓ¦µÄËùÓжÓÁУ¬Èç¹û×ö¼¯ÈºÏû·Ñ£¬Ôò¶à¸öConsumerʵÀýƽ¾ùÏû·ÑÕâ¸ötopic¶ÔÓ¦µÄ¶ÓÁм¯ºÏ¡£
1.Äܹ»±£Ö¤ÑϸñµÄÏûϢ˳Ðò
2.Ìṩ·á¸»µÄÏûÏ¢Àȡģʽ
3.¸ßЧµÄ¶©ÔÄÕßˮƽÀ©Õ¹ÄÜÁ¦
4.ʵʱµÄÏûÏ¢¶©ÔÄ»úÖÆ
5.ÒÚ¼¶ÏûÏ¢¶Ñ»ýÄÜÁ¦
6.½ÏÉÙµÄÒÀÀµ
RocketMQ ÎïÀí²¿Êð½á¹¹

ÈçÉÏͼËùʾ£¬ RocketMQµÄ²¿Êð½á¹¹ÓÐÒÔÏÂÌØµã£º
Name ServerÊÇÒ»¸ö¼¸ºõÎÞ״̬½Úµã£¬¿É¼¯Èº²¿Ê𣬽ڵãÖ®¼äÎÞÈκÎÐÅϢͬ²½¡£
Broker²¿ÊðÏà¶Ô¸´ÔÓ£¬Broker·ÖΪMasterÓëSlave£¬Ò»¸öMaster¿ÉÒÔ¶ÔÓ¦¶à¸öSlave£¬µ«ÊÇÒ»¸öSlaveÖ»ÄܶÔÓ¦Ò»¸öMaster£¬MasterÓëSlaveµÄ¶ÔÓ¦¹ØÏµÍ¨¹ýÖ¸¶¨ÏàͬµÄBrokerName£¬²»Í¬µÄBrokerIdÀ´¶¨Ò壬BrokerIdΪ0±íʾMaster£¬·Ç0±íʾSlave¡£MasterÒ²¿ÉÒÔ²¿Êð¶à¸ö¡£Ã¿¸öBrokerÓëName
Server¼¯ÈºÖеÄËùÓнڵ㽨Á¢³¤Á¬½Ó£¬¶¨Ê±×¢²áTopicÐÅÏ¢µ½ËùÓÐName Server¡£
ProducerÓëName Server¼¯ÈºÖÐµÄÆäÖÐÒ»¸ö½Úµã£¨Ëæ»úÑ¡Ôñ£©½¨Á¢³¤Á¬½Ó£¬¶¨ÆÚ´ÓName
ServerÈ¡Topic·ÓÉÐÅÏ¢£¬²¢ÏòÌṩTopic·þÎñµÄMaster½¨Á¢³¤Á¬½Ó£¬ÇÒ¶¨Ê±ÏòMaster·¢ËÍÐÄÌø¡£ProducerÍêÈ«ÎÞ״̬£¬¿É¼¯Èº²¿Êð¡£
ConsumerÓëName Server¼¯ÈºÖÐµÄÆäÖÐÒ»¸ö½Úµã£¨Ëæ»úÑ¡Ôñ£©½¨Á¢³¤Á¬½Ó£¬¶¨ÆÚ´ÓName
ServerÈ¡Topic·ÓÉÐÅÏ¢£¬²¢ÏòÌṩTopic·þÎñµÄMaster¡¢Slave½¨Á¢³¤Á¬½Ó£¬ÇÒ¶¨Ê±ÏòMaster¡¢Slave·¢ËÍÐÄÌø¡£Consumer¼È¿ÉÒÔ´ÓMaster¶©ÔÄÏûÏ¢£¬Ò²¿ÉÒÔ´ÓSlave¶©ÔÄÏûÏ¢£¬¶©ÔĹæÔòÓÉBrokerÅäÖþö¶¨¡£
RocketMQ Âß¼²¿Êð½á¹¹

ÈçÉÏͼËùʾ£¬RocketMQµÄÂß¼²¿Êð½á¹¹ÓÐProducerºÍConsumerÁ½¸öÌØµã¡£
1.Producer Group
ÓÃÀ´±íʾһ¸ö·¢ËÍÏûÏ¢Ó¦Óã¬Ò»¸öProducer Groupϰüº¬¶à¸öProducerʵÀý£¬¿ÉÒÔÊǶą̀»úÆ÷£¬Ò²¿ÉÒÔÊÇһ̨»úÆ÷µÄ¶à¸ö½ø³Ì£¬»òÕßÒ»¸ö½ø³ÌµÄ¶à¸öProducer¶ÔÏó¡£Ò»¸öProducer
Group¿ÉÒÔ·¢ËͶà¸öTopicÏûÏ¢£¬Producer Group×÷ÓÃÈçÏ£º
±êʶһÀàProducer
¿ÉÒÔͨ¹ýÔËά¹¤¾ß²éѯÕâ¸ö·¢ËÍÏûÏ¢Ó¦ÓÃÏÂÓжà¸öProducerʵÀý
·¢ËÍ·Ö²¼Ê½ÊÂÎñÏûϢʱ£¬Èç¹ûProducerÖÐ;ÒâÍâå´»ú£¬Broker»áÖ÷¶¯»Øµ÷Producer GroupÄÚµÄÈÎÒâһ̨»úÆ÷À´È·ÈÏÊÂÎñ״̬¡£
2.Consumer Group
ÓÃÀ´±íʾһ¸öÏû·ÑÏûÏ¢Ó¦Óã¬Ò»¸öConsumer Groupϰüº¬¶à¸öConsumerʵÀý£¬¿ÉÒÔÊǶą̀»úÆ÷£¬Ò²¿ÉÒÔÊǶà¸ö½ø³Ì£¬»òÕßÊÇÒ»¸ö½ø³ÌµÄ¶à¸öConsumer¶ÔÏó¡£Ò»¸öConsumer
GroupϵĶà¸öConsumerÒÔ¾ù̯·½Ê½Ïû·ÑÏûÏ¢£¬Èç¹ûÉèÖÃΪ¹ã²¥·½Ê½£¬ÄÇôÕâ¸öConsumer
GroupϵÄÿ¸öʵÀý¶¼Ïû·ÑÈ«Á¿Êý¾Ý¡£
RocketMQ Êý¾Ý´æ´¢½á¹¹

ÈçÉÏͼËùʾ£¬RocketMQ²ÉÈ¡ÁËÒ»ÖÖÊý¾ÝÓëË÷Òý·ÖÀëµÄ´æ´¢·½·¨¡£ÓÐЧ½µµÍÎļþ×ÊÔ´¡¢IO×ÊÔ´£¬ÄÚ´æ×ÊÔ´µÄËðºÄ¡£¼´±ãÊǰ¢ÀïÕâÖÖº£Á¿Êý¾Ý£¬¸ß²¢·¢³¡¾°Ò²Äܹ»ÓÐЧ½µµÍ¶Ëµ½¶ËÑÓ³Ù£¬²¢¾ß±¸½ÏÇ¿µÄºáÏòÀ©Õ¹ÄÜÁ¦¡£
|