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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ïê½âRocketMQµÄ¼Ü¹¹Éè¼Æ¡¢¹Ø¼üÌØÐÔ¡¢ÓëÓ¦Óó¡¾°
 
×÷Õߣº ¿§·ÈÄÃÌú
  2431  次浏览      27
 2020-3-18
 
±à¼­ÍƼö:
±¾ÎĽéÉÜRocketMQµÄ¼ò½éÓëÑݽø£¬RocketMQµÄ¼Ü¹¹Éè¼Æ£¬RocketMQµÄ¹Ø¼üÌØÐÔ£¬RocketMQµÄÓ¦Óó¡¾°Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚsegmentfault£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­¡¢ÍƼö¡£

RocketMQµÄ¼ò½é

RocketMQÒ»¸ö´¿java¡¢·Ö²¼Ê½¡¢¶ÓÁÐÄ£Ð͵ĿªÔ´ÏûÏ¢Öмä¼þ£¬Ç°ÉíÊÇMetaQ£¬Êǰ¢ÀïÑз¢µÄÒ»¸ö¶ÓÁÐÄ£Ð͵ÄÏûÏ¢Öмä¼þ£¬ºó¿ªÔ´¸øapache»ù½ð»á³ÉΪÁËapacheµÄ¶¥¼¶¿ªÔ´ÏîÄ¿£¬¾ßÓиßÐÔÄÜ¡¢¸ß¿É¿¿¡¢¸ßʵʱ¡¢·Ö²¼Ê½Ìص㡣

RocketMQµÄÑݽø

RocketMQÒ»¹²Ç°ºó¾­ÀúÁËÈý´úÑݽø£º

1.µÚÒ»´ú£¬ÍÆÄ£Ê½

Êý¾Ý´æ´¢²ÉÓùØÏµÐÍÊý¾Ý¿â£¬µäÐÍ´ú±í°üÀ¨Notify¡¢Napoli¡£

2.µÚ¶þ´ú£¬À­Ä£Ê½

×ÔÑеÄרÓÐÏûÏ¢´æ´¢£¬ÔÚÈÕÖ¾´¦Àí·½Ãæ²Î¿¼Kafka£¬µäÐÍ´ú±íMetaQ¡£

3.µÚÈý´ú£¬ÒÔÀ­Ä£Ê½ÎªÖ÷£¬¼æÓÐÍÆÄ£Ê½

µÍÑÓ³ÙÏûÏ¢ÒýÇæRocketMQ£¬ÔÚ¶þ´ú¹¦ÄÜÌØÐԵĻù´¡ÉÏ£¬ÎªµçÉ̽ðÈÚÁìÓòÌí¼ÓÁ˿ɿ¿ÖØÊÔ¡¢»ùÓÚÎļþ´æ´¢µÄ·Ö²¼Ê½ÊÂÎñµÈÌØÐÔ¡£Ê¹ÓÃÔÚÁ˰¢Àï´óÁ¿µÄÓ¦ÓÃÉÏ£¬µäÐÍÈçË«11³¡¾°£¬¾ßÓÐÍòÒÚ¼¶ÏûÏ¢Á÷ת¡£

RocketMQµÄ¼Ü¹¹Éè¼Æ

1.RocketMQµÄºËÐÄ×é¼þ

RocketMQÖ÷ÒªÓÉNameServer¡¢Broker¡¢ProducerÒÔ¼°ConsumerËIJ¿·Ö¹¹³É¡£

1£©NameServer£ºÖ÷Òª¸ºÔð¶ÔÓÚÔ´Êý¾ÝµÄ¹ÜÀí£¬°üÀ¨Á˶ÔÓÚTopicºÍ·ÓÉÐÅÏ¢µÄ¹ÜÀí¡£

NameServerÊÇÒ»¸ö¹¦ÄÜÆëÈ«µÄ·þÎñÆ÷£¬Æä½ÇÉ«ÀàËÆDubboÖеÄZookeeper£¬µ«NameServerÓëZookeeperÏà±È¸üÇáÁ¿¡£Ö÷ÒªÊÇÒòΪÿ¸öNameServer½Úµã»¥ÏàÖ®¼äÊǶÀÁ¢µÄ£¬Ã»ÓÐÈκÎÐÅÏ¢½»»¥¡£

2£© Producer

ÏûÏ¢Éú²úÕߣ¬¸ºÔð²úÉúÏûÏ¢£¬Ò»°ãÓÉÒµÎñϵͳ¸ºÔð²úÉúÏûÏ¢¡£

ProducerÓÉÓû§½øÐзֲ¼Ê½²¿Êð£¬ÏûÏ¢ÓÉProducerͨ¹ý¶àÖÖ¸ºÔؾùºâģʽ·¢Ë͵½Broker¼¯Èº£¬·¢Ë͵ÍÑÓʱ£¬Ö§³Ö¿ìËÙʧ°Ü¡£

3 £©Broker

ÏûÏ¢ÖÐת½ÇÉ«£¬¸ºÔð´æ´¢ÏûÏ¢£¬×ª·¢ÏûÏ¢¡£

BrokerÊǾßÌåÌṩҵÎñµÄ·þÎñÆ÷£¬µ¥¸öBroker½ÚµãÓëËùÓеÄNameServer½Úµã±£³Ö³¤Á¬½Ó¼°ÐÄÌø£¬²¢»á¶¨Ê±½«TopicÐÅÏ¢×¢²áµ½NameServer£¬Ë³´øÒ»Ìáµ×²ãµÄͨÐźÍÁ¬½Ó¶¼ÊÇ»ùÓÚNettyʵÏֵġ£

Broker¸ºÔðÏûÏ¢´æ´¢£¬ÒÔTopicΪγ¶ÈÖ§³ÖÇáÁ¿¼¶µÄ¶ÓÁУ¬µ¥»ú¿ÉÒÔÖ§³ÅÉÏÍò¶ÓÁйæÄ££¬Ö§³ÖÏûÏ¢ÍÆÀ­Ä£ÐÍ¡£

¹ÙÍøÉÏÓÐÊý¾ÝÏÔʾ£º¾ßÓÐÉÏÒÚ¼¶ÏûÏ¢¶Ñ»ýÄÜÁ¦£¬Í¬Ê±¿ÉÑϸñ±£Ö¤ÏûÏ¢µÄÓÐÐòÐÔ¡£

4£©Consumer

ÏûÏ¢Ïû·ÑÕߣ¬¸ºÔðÏû·ÑÏûÏ¢£¬Ò»°ãÊǺǫ́ϵͳ¸ºÔðÒì²½Ïû·Ñ¡£

ConsumerÒ²ÓÉÓû§²¿Êð£¬Ö§³ÖPUSHºÍPULLÁ½ÖÖÏû·Ñģʽ£¬Ö§³Ö¼¯ÈºÏû·ÑºÍ¹ã²¥ÏûÏ¢£¬ÌṩʵʱµÄÏûÏ¢¶©ÔÄ»úÖÆ¡£

5£©´óÖÂÁ÷³Ì

BrokerÔÚÆô¶¯µÄʱºò»áÈ¥ÏòNameServer×¢²á²¢ÇÒ¶¨Ê±·¢ËÍÐÄÌø£¬ProducerÔÚÆô¶¯µÄʱºò»áµ½NameServerÉÏÈ¥À­È¡TopicËùÊôµÄBroker¾ßÌ嵨ַ£¬È»ºóÏò¾ßÌåµÄBroker·¢ËÍÏûÏ¢¡£¾ßÌåÈçÏÂͼ£º

2.RocketMQµÄÏûÏ¢ÁìÓòÄ£ÐÍ

Ö÷Òª·ÖΪMessage¡¢Topic¡¢Queue¡¢OffsetÒÔ¼°GroupÕ⼸²¿·Ö¡£

1£©Topic

Topic±íʾÏûÏ¢µÄµÚÒ»¼¶ÀàÐÍ£¬±ÈÈçÒ»¸öµçÉÌϵͳµÄÏûÏ¢¿ÉÒÔ·ÖΪ£º½»Ò×ÏûÏ¢¡¢ÎïÁ÷ÏûÏ¢µÈ¡£Ò»ÌõÏûÏ¢±ØÐëÓÐÒ»¸öTopic¡£

×îϸÁ£¶ÈµÄ¶©Ôĵ¥Î»£¬Ò»¸öGroup¿ÉÒÔ¶©ÔĶà¸öTopicµÄÏûÏ¢¡£

2£©Tag

Tag±íʾÏûÏ¢µÄµÚ¶þ¼¶ÀàÐÍ£¬±ÈÈç½»Ò×ÏûÏ¢ÓÖ¿ÉÒÔ·ÖΪ£º½»Ò×´´½¨ÏûÏ¢£¬½»Ò×Íê³ÉÏûÏ¢µÈ¡£RocketMQÌṩ2¼¶ÏûÏ¢·ÖÀ࣬·½±ãÁé»î¿ØÖÆ¡£

3)Group ×飬һ¸ö×é¿ÉÒÔ¶©ÔĶà¸öTopic¡£

4£©Message Queue

ÏûÏ¢µÄÎïÀí¹ÜÀíµ¥Î»¡£Ò»¸öTopicÏ¿ÉÒÔÓжà¸öQueue£¬QueueµÄÒýÈëʹµÃÏûÏ¢µÄ´æ´¢¿ÉÒÔ·Ö²¼Ê½¼¯Èº»¯£¬¾ßÓÐÁËˮƽÀ©Õ¹ÄÜÁ¦¡£ ÔÚ RocketMQ ÖУ¬ËùÓÐÏûÏ¢¶ÓÁж¼Êdz־û¯£¬³¤¶ÈÎÞÏÞµÄÊý¾Ý½á¹¹£¬Ëùν³¤¶ÈÎÞÏÞÊÇÖ¸¶ÓÁÐÖеÄÿ¸ö´æ´¢µ¥Ôª¶¼ÊǶ¨³¤£¬·ÃÎÊÆäÖеĴ洢µ¥ÔªÊ¹Óà Offset À´·ÃÎÊ£¬offset Ϊ java long ÀàÐÍ£¬64 룬ÀíÂÛÉÏÔÚ 100ÄêÄÚ²»»áÒç³ö£¬ËùÒÔÈÏΪÊdz¤¶ÈÎÞÏÞ¡£

Ò²¿ÉÒÔÈÏΪ Message Queue ÊÇÒ»¸ö³¤¶ÈÎÞÏÞµÄÊý×飬Offset ¾ÍÊÇϱꡣ

RocketMQµÄ¹Ø¼üÌØÐÔ

1.ÏûÏ¢µÄ˳Ðò

ÏûÏ¢µÄ˳ÐòÖ¸µÄÊÇÏûÏ¢Ïû·Ñʱ£¬Äܰ´ÕÕ·¢Ë͵Ä˳ÐòÀ´Ïû·Ñ¡£ÀýÈ磺һ¸ö¶©µ¥²úÉúÁË 3 ÌõÏûÏ¢£¬·Ö±ðÊǶ©µ¥´´½¨¡¢¶©µ¥¸¶¿î¡¢¶©µ¥Íê³É¡£Ïû·Ñʱ£¬Òª°´ÕÕÕâ¸ö˳ÐòÏû·Ñ²ÅÓÐÒâÒå¡£µ«Í¬Ê±¶©µ¥Ö®¼äÓÖÊÇ¿ÉÒÔ²¢ÐÐÏû·ÑµÄ¡£

RocketMQÊÇͨ¹ý½«¡°ÏàͬIDµÄÏûÏ¢·¢Ë͵½Í¬Ò»¸ö¶ÓÁУ¬¶øÒ»¸ö¶ÓÁеÄÏûÏ¢Ö»ÓÉÒ»¸öÏû·ÑÕß´¦Àí¡°À´ÊµÏÖ˳ÐòÏûÏ¢¡£ÈçÏÂͼ£º

ÕâÑù¶ÔÓÚͬһ¸ö¶©µ¥µÄ´´½¨¡¢¸¶¿îºÍÍê³ÉÏûÏ¢£¬È·±£°´ÕÕÕâһ˳Ðò±»·¢ËͺÍÏû·Ñ¡£

2.ÏûÏ¢ÖØ¸´

1£©ÏûÏ¢ÖØ¸´µÄÔ­Òò

ÏûÏ¢ÁìÓòÓÐÒ»¸ö¶ÔÏûϢͶµÝµÄQoS¶¨Ò壬·ÖΪ£º

×î¶àÒ»´Î£¨At most once£©

ÖÁÉÙÒ»´Î£¨At least once£©

½öÒ»´Î£¨ Exactly once£© file

¼¸ºõËùÓеÄMQ²úÆ·¶¼Éù³Æ×Ô¼º×öµ½ÁËAt least once¡£¼ÈÈ»ÊÇÖÁÉÙÒ»´Î£¬ÄDZÜÃâ²»ÁËÏûÏ¢ÖØ¸´£¬ÓÈÆäÊÇÔÚ·Ö²¼Ê½ÍøÂç»·¾³Ï¡£±ÈÈç£ºÍøÂçÔ­ÒòÉÁ¶Ï£¬ACK·µ»ØÊ§°ÜµÈµÈ¹ÊÕÏ£¬È·ÈÏÐÅϢûÓд«Ë͵½ÏûÏ¢¶ÓÁУ¬µ¼ÖÂÏûÏ¢¶ÓÁв»ÖªµÀ×Ô¼ºÒѾ­Ïû·Ñ¹ý¸ÃÏûÏ¢ÁË£¬Ôٴν«¸ÃÏûÏ¢·Ö·¢¸øÆäËûµÄÏû·ÑÕß¡£

²»Í¬µÄÏûÏ¢¶ÓÁз¢Ë͵ÄÈ·ÈÏÐÅÏ¢ÐÎʽ²»Í¬,ÀýÈçRabbitMQÊÇ·¢ËÍÒ»¸öACKÈ·ÈÏÏûÏ¢£¬RocketMQÊÇ·µ»ØÒ»¸öCONSUME_SUCCESS³É¹¦±êÖ¾£¬kafkaʵ¼ÊÉÏÓиöoffsetµÄ¸ÅÄî¡£

RocketMQûÓÐÄÚÖÃÏûÏ¢È¥ÖØµÄ½â¾ö·½°¸£¬×îа汾ÊÇ·ñÖ§³Ö»¹ÐèÈ·ÈÏ¡£

2£©ÏûÏ¢È¥ÖØ

È¥ÖØÔ­Ôò£ºÊ¹ÓÃÒµÎñ¶ËÂß¼­±£³ÖÃݵÈÐÔ

ÃݵÈÐÔ£º¾ÍÊÇÓû§¶ÔÓÚͬһ²Ù×÷·¢ÆðµÄÒ»´ÎÇëÇó»òÕß¶à´ÎÇëÇóµÄ½á¹ûÊÇÒ»Öµģ¬²»»áÒòΪ¶à´Îµã»÷¶ø²úÉúÁ˸±×÷Óã¬Êý¾Ý¿âµÄ½á¹û¶¼ÊÇΨһµÄ£¬²»¿É±äµÄ¡£

Ö»Òª±£³ÖÃݵÈÐÔ£¬²»¹ÜÀ´¶àÉÙÌõÖØ¸´ÏûÏ¢£¬×îºó´¦ÀíµÄ½á¹û¶¼Ò»Ñù£¬ÐèÒªÒµÎñ¶ËÀ´ÊµÏÖ¡£

È¥ÖØ²ßÂÔ£º±£Ö¤Ã¿ÌõÏûÏ¢¶¼ÓÐΨһ±àºÅ(±ÈÈçΨһÁ÷Ë®ºÅ)£¬ÇÒ±£Ö¤ÏûÏ¢´¦Àí³É¹¦ÓëÈ¥ÖØ±íµÄÈÕ־ͬʱ³öÏÖ¡£

½¨Á¢Ò»¸öÏûÏ¢±í£¬Äõ½Õâ¸öÏûÏ¢×öÊý¾Ý¿âµÄinsert²Ù×÷¡£¸øÕâ¸öÏûÏ¢×öÒ»¸öΨһÖ÷¼ü£¨primary key£©»òÕßÎ¨Ò»Ô¼Êø£¬ÄÇô¾ÍËã³öÏÖÖØ¸´Ïû·ÑµÄÇé¿ö£¬¾Í»áµ¼ÖÂÖ÷¼ü³åÍ»£¬ÄÇô¾Í²»ÔÙ´¦ÀíÕâÌõÏûÏ¢¡£

RocketMQµÄÓ¦Óó¡¾°

1.Ï÷·åÌî¹È

±ÈÈçÈçÃëɱµÈ´óÐͻʱ»á´øÀ´½Ï¸ßµÄÁ÷Á¿Âö³å£¬Èç¹ûû×öÏàÓ¦µÄ±£»¤£¬½«µ¼ÖÂϵͳ³¬¸ººÉÉõÖÁ±ÀÀ£¡£Èç¹ûÒòÏÞÖÆÌ«¹ýµ¼ÖÂÇëÇó´óÁ¿Ê§°Ü¶øÓ°ÏìÓû§ÌåÑ飬¿ÉÒÔÀûÓÃMQ ³¬¸ßÐÔÄܵÄÏûÏ¢´¦ÀíÄÜÁ¦À´½â¾ö¡£

2.Òì²½½âñî

ͨ¹ýÉÏ¡¢ÏÂÓÎÒµÎñϵͳµÄËÉñîºÏÉè¼Æ£¬±ÈÈ磺½»Ò×ϵͳµÄÏÂÓÎ×Óϵͳ£¨Èç»ý·ÖµÈ£©³öÏÖ²»¿ÉÓÃÉõÖÁå´»ú£¬¶¼²»»áÓ°Ïìµ½ºËÐĽ»Ò×ϵͳµÄÕý³£ÔËת¡£

3.˳ÐòÏûÏ¢

ÓëFIFOÔ­ÀíÀàËÆ£¬MQÌṩµÄ˳ÐòÏûÏ¢¼´±£Ö¤ÏûÏ¢µÄÏȽøÏȳö£¬¿ÉÒÔÓ¦ÓÃÓÚ½»Ò×ϵͳÖеĶ©µ¥´´½¨¡¢Ö§¸¶¡¢ÍË¿îµÈÁ÷³Ì¡£

4.·Ö²¼Ê½ÊÂÎñÏûÏ¢

±ÈÈç°¢ÀïµÄ½»Ò×ϵͳ¡¢Ö§¸¶ºì°üµÈ³¡¾°ÐèҪȷ±£Êý¾ÝµÄ×îÖÕÒ»ÖÂÐÔ£¬ÐèÒªÒýÈë MQ µÄ·Ö²¼Ê½ÊÂÎñ£¬¼ÈʵÏÖÁËϵͳ֮¼äµÄ½âñÓÖ¿ÉÒÔ±£Ö¤×îÖÕµÄÊý¾ÝÒ»ÖÂÐÔ¡£

½«´óÊÂÎñ²ð·Ö³ÉСÊÂÎñ£¬¼õÉÙϵͳ¼äµÄ½»»¥£¬¼È¸ßЧÓÖ¿É¿¿¡£ÔÙÀûÓÃMQ µÄ¿É¿¿´«ÊäÓë¶à¸±±¾¼¼ÊõÈ·±£ÏûÏ¢²»¶ª£¬At-Least-Once ÌØÐÔÀ´×îÖÕÈ·±£Êý¾ÝµÄ×îÖÕÒ»ÖÂÐÔ¡£

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

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

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

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