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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
RabbitMQÔ­Àí¡¢¼¯Èº¡¢»ù±¾²Ù×÷¼°³£¼û¹ÊÕÏ´¦Àí
 
  3268  次浏览      28
 2019-9-5
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚÃñ¹¤¸ç¼¼Êõ֮·£¬±¾Õ½éÉÜÁËrabbitmq µÄ»ù±¾Ô­Àí¡¢»ù±¾ÔËά²Ù×÷¡¢³£¼û¹ÊÕÏ´¦ÀíÒÔ¼°RabbitMQÀ´²¿Êð·Ö²¼Ê½¼¯ÈºÏµÍ³µÄÈýÖÖ·½·¨¡£

1¡¢Ô­ÀíÓë¸ÅÄî

¼ò½é

AMQP£¬¼´Advanced Message Queuing Protocol£¬¸ß¼¶ÏûÏ¢¶ÓÁÐЭÒ飬ÊÇÓ¦ÓòãЭÒéµÄÒ»¸ö¿ª·Å±ê×¼£¬ÎªÃæÏòÏûÏ¢µÄÖмä¼þÉè¼Æ¡£ÏûÏ¢Öмä¼þÖ÷ÒªÓÃÓÚ×é¼þÖ®¼äµÄ½âñÏûÏ¢µÄ·¢ËÍÕßÎÞÐèÖªµÀÏûϢʹÓÃÕߵĴæÔÚ£¬·´Ö®ÒàÈ»¡£

AMQPµÄÖ÷ÒªÌØÕ÷ÊÇÃæÏòÏûÏ¢¡¢¶ÓÁС¢Â·ÓÉ£¨°üÀ¨µã¶ÔµãºÍ·¢²¼/¶©ÔÄ£©¡¢¿É¿¿ÐÔ¡¢°²È«¡£RabbitMQÊÇÒ»¸ö¿ªÔ´µÄAMQPʵÏÖ£¬·þÎñÆ÷¶ËÓÃErlangÓïÑÔ±àд£¬Ö§³Ö¶àÖÖ¿Í»§¶Ë£¬È磺Python¡¢Ruby¡¢.NET¡¢Java¡¢JMS¡¢C¡¢PHP¡¢ActionScript¡¢XMPP¡¢STOMPµÈ£¬Ö§³ÖAJAX¡£ÓÃÓÚÔÚ·Ö²¼Ê½ÏµÍ³Öд洢ת·¢ÏûÏ¢£¬ÔÚÒ×ÓÃÐÔ¡¢À©Õ¹ÐÔ¡¢¸ß¿ÉÓÃÐԵȷ½Ãæ±íÏÖ²»Ëס£

½â¾öµÄÎÊÌâ

RabbitMQ¾ÍÊǵ±Ç°×îÖ÷Á÷µÄÏûÏ¢Öмä¼þÖ®Ò»¡£

Á½¸ö£¨¶à¸ö£©ÏµÍ³¼äÐèҪͨ¹ý¶¨Ê±ÈÎÎñÀ´Í¬²½Ä³Ð©Êý¾Ý

Ò칹ϵͳµÄ²»Í¬½ø³Ì¼äÏ໥µ÷Óá¢Í¨Ñ¶µÄÎÊÌâ

Queue

Queue£¨¶ÓÁУ©ÊÇRabbitMQµÄÄÚ²¿¶ÔÏó£¬ÓÃÓÚ´æ´¢ÏûÏ¢£¬ÓÃÏÂͼ±íʾ¡£

RabbitMQÖеÄÏûÏ¢¶¼Ö»ÄÜ´æ´¢ÔÚQueueÖУ¬Éú²úÕߣ¨ÏÂͼÖеÄP£©Éú²úÏûÏ¢²¢×îÖÕͶµÝµ½QueueÖУ¬Ïû·ÑÕߣ¨ÏÂͼÖеÄC£©¿ÉÒÔ´ÓQueueÖлñÈ¡ÏûÏ¢²¢Ïû·Ñ¡£

¶à¸öÏû·ÑÕß¿ÉÒÔ¶©ÔÄͬһ¸öQueue£¬ÕâʱQueueÖеÄÏûÏ¢»á±»Æ½¾ù·Ö̯¸ø¶à¸öÏû·ÑÕß½øÐд¦Àí£¬¶ø²»ÊÇÿ¸öÏû·ÑÕß¶¼ÊÕµ½ËùÓеÄÏûÏ¢²¢´¦Àí¡£

¼¼ÊõÊõÓï

Broker£º¼òµ¥À´Ëµ¾ÍÊÇÏûÏ¢¶ÓÁзþÎñÆ÷ʵÌå¡£

producer£ºÏûÏ¢Éú²úÕߣ¬¾ÍÊÇͶµÝÏûÏ¢µÄ³ÌÐò¡£

consumer£ºÏûÏ¢Ïû·ÑÕߣ¬¾ÍÊǽÓÊÜÏûÏ¢µÄ³ÌÐò¡£

vhost£ºÐéÄâÖ÷»ú£¬Ò»¸öbrokerÀï¿ÉÒÔ¿ªÉè¶à¸övhost£¬ÓÃ×÷ȨÏÞ·ÖÀ룬°Ñ²»Í¬µÄϵͳʹÓõÄrabbitmqÇø·Ö¿ª£¬¹²ÓÃÒ»¸öÏûÏ¢¶ÓÁзþÎñÆ÷£¬µ«¿´ÉÏÈ¥¾ÍÏñ¸÷×ÔÔÚÓò»ÓõÄrabbitmq·þÎñÆ÷Ò»Ñù¡£

Connection:Ò»¸öÍøÂçÁ¬½Ó£¬±ÈÈçTCP/IPÌ×½Ó×ÖÁ¬½Ó¡£

channel£ºÏûϢͨµÀ£¬Êǽ¨Á¢ÔÚÕæÊµµÄTCPÁ¬½ÓÄÚµÄÐéÄâÁ¬½Ó£¨ÊÇÎÒÃÇÓëRabbitMQ´ò½»µÀµÄ×îÖØÒªµÄÒ»¸ö½Ó¿Ú£©¡£½ö½ö´´½¨Á˿ͻ§¶Ëµ½BrokerÖ®¼äµÄÁ¬½Óºó£¬¿Í»§¶Ë»¹ÊDz»ÄÜ·¢ËÍÏûÏ¢µÄ,ÐèҪΪÿһ¸öConnection´´½¨Channel£¬AMQPЭÒ鹿¶¨Ö»ÓÐͨ¹ýChannel²ÅÄÜÖ´ÐÐAMQPµÄÃüÁî¡£AMQPµÄÃüÁî¶¼ÊÇͨ¹ýÐŵÀ·¢ËͳöÈ¥µÄ£¨ÎÒÃǴ󲿷ֵÄÒµÎñ²Ù×÷ÊÇÔÚChannelÕâ¸ö½Ó¿ÚÖÐÍê³ÉµÄ£¬°üÀ¨¶¨ÒåQueue¡¢¶¨ÒåExchange¡¢°ó¶¨QueueÓëExchange¡¢·¢²¼ÏûÏ¢µÈ¡££©¡£Ã¿ÌõÐŵÀ¶¼»á±»Ö¸ÅÉÒ»¸öΨһID¡£ÔÚ¿Í»§¶ËµÄÿ¸öÁ¬½ÓÀ¿É½¨Á¢¶à¸öchannel£¬Ã¿¸öchannel´ú±íÒ»¸ö»á»°ÈÎÎñ,ÀíÂÛÉÏÎÞÏÞÖÆ£¬¼õÉÙTCP´´½¨ºÍÏú»ÙµÄ¿ªÏú£¬ÊµÏÖ¹²ÓÃTCPµÄЧ¹û¡£Ö®ËùÒÔÐèÒªChannel£¬ÊÇÒòΪTCPÁ¬½ÓµÄ½¨Á¢ºÍÊͷŶ¼ÊÇÊ®·Ö°º¹óµÄ£¬Èç¹ûÒ»¸ö¿Í»§¶Ëÿһ¸öÏ̶߳¼ÐèÒªÓëBroker½»»¥£¬Èç¹ûÿһ¸öÏ̶߳¼½¨Á¢Ò»¸öTCPÁ¬½Ó£¬ÔÝÇÒ²»¿¼ÂÇTCPÁ¬½ÓÊÇ·ñÀË·Ñ£¬¾ÍËã²Ù×÷ϵͳҲÎÞ·¨³ÐÊÜÿÃ뽨Á¢Èç´Ë¶àµÄTCPÁ¬½Ó¡£×¢1£ºÒ»¸öÉú²úÕß»òÒ»¸öÏû·ÑÕßÓëMQ·þÎñÆ÷Ö®¼äÖ»ÓÐÒ»ÌõTCPÁ¬½Ó ×¢2£ºRabbitMQ½¨Òé¿Í»§¶ËÏß³ÌÖ®¼ä²»Òª¹²ÓÃChannel£¬ÖÁÉÙÒª±£Ö¤¹²ÓÃChannelµÄÏ̷߳¢ËÍÏûÏ¢±ØÐëÊÇ´®Ðе쬵«Êǽ¨Ò龡Á¿¹²ÓÃConnection¡£

Exchange£ºÏûÏ¢½»»»»ú£¬Éú²úÕß²»ÊÇÖ±½Ó½«ÏûϢͶµÝµ½QueueÖеģ¬Êµ¼ÊÉÏÊÇÉú²úÕß½«ÏûÏ¢·¢Ë͵½Exchange£¨½»»»Æ÷£¬ÏÂͼÖеÄX£©£¬ÓÉExchange½«ÏûϢ·Óɵ½Ò»¸ö»ò¶à¸öQueueÖУ¨»òÕß¶ªÆú£©¡£

Exchange Types RabbitMQ³£ÓõÄExchange TypeÓÐfanout¡¢direct¡¢topic¡¢headersÕâËÄÖÖ£¨AMQP¹æ·¶ÀﻹÌáµ½Á½ÖÖExchange Type£¬·Ö±ðΪsystemÓë×Ô¶¨Ò壬ÕâÀï²»ÓèÒÔÃèÊö£©£¬Ö®ºó»á·Ö±ð½øÐнéÉÜ¡£

Queue£ºÏûÏ¢¶ÓÁÐÔØÌ壬ÿ¸öÏûÏ¢¶¼»á±»Í¶Èëµ½Ò»¸ö»ò¶à¸ö¶ÓÁС£

Binding£º°ó¶¨£¬ËüµÄ×÷ÓþÍÊǰÑexchangeºÍqueue°´ÕÕ·ÓɹæÔò°ó¶¨ÆðÀ´£¬ÕâÑùRabbitMQ¾ÍÖªµÀÈçºÎÕýÈ·µØ½«ÏûϢ·Óɵ½Ö¸¶¨µÄQueueÁË¡£

Routing Key£ºÂ·Óɹؼü×Ö£¬Éú²úÕßÔÚ½«ÏûÏ¢·¢Ë͸øExchangeµÄʱºò£¬Ò»°ã»áÖ¸¶¨Ò»¸örouting key£¬À´Ö¸¶¨Õâ¸öÏûÏ¢µÄ·ÓɹæÔò£¬¶øÕâ¸örouting keyÐèÒªÓëExchange Type¼°binding keyÁªºÏʹÓòÅÄÜ×îÖÕÉúЧ¡£

ÔÚExchange TypeÓëbinding key¹Ì¶¨µÄÇé¿öÏ£¨ÔÚÕý³£Ê¹ÓÃʱһ°ãÕâЩÄÚÈݶ¼Êǹ̶¨ÅäÖúõģ©£¬ÎÒÃǵÄÉú²úÕ߾ͿÉÒÔÔÚ·¢ËÍÏûÏ¢¸øExchangeʱ£¬Í¨¹ýÖ¸¶¨routing keyÀ´¾ö¶¨ÏûÏ¢Á÷ÏòÄÄÀï¡£

Prefetch count Ç°ÃæÎÒÃǽ²µ½Èç¹ûÓжà¸öÏû·ÑÕßͬʱ¶©ÔÄͬһ¸öQueueÖеÄÏûÏ¢£¬QueueÖеÄÏûÏ¢»á±»Æ½Ì¯¸ø¶à¸öÏû·ÑÕß¡£ÕâʱÈç¹ûÿ¸öÏûÏ¢µÄ´¦Àíʱ¼ä²»Í¬£¬¾ÍÓпÉÄܻᵼÖÂijЩÏû·ÑÕßÒ»Ö±ÔÚæ£¬¶øÁíÍâһЩÏû·ÑÕߺܿì¾Í´¦ÀíÍêÊÖÍ·¹¤×÷²¢Ò»Ö±¿ÕÏеÄÇé¿ö¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÉèÖÃprefetchCountÀ´ÏÞÖÆQueueÿ´Î·¢Ë͸øÃ¿¸öÏû·ÑÕßµÄÏûÏ¢Êý£¬±ÈÈçÎÒÃÇÉèÖÃprefetchCount=1£¬ÔòQueueÿ´Î¸øÃ¿¸öÏû·ÑÕß·¢ËÍÒ»ÌõÏûÏ¢£»Ïû·ÑÕß´¦ÀíÍêÕâÌõÏûÏ¢ºóQueue»áÔÙ¸ø¸ÃÏû·ÑÕß·¢ËÍÒ»ÌõÏûÏ¢¡£

ÏûÏ¢¶ÓÁеÄʹÓùý³Ì

ÔÚAMQPÄ£ÐÍÖУ¬ExchangeÊǽÓÊÜÉú²úÕßÏûÏ¢²¢½«ÏûϢ·Óɵ½ÏûÏ¢¶ÓÁеĹؼü×é¼þ¡£ExchangeTypeºÍBinding¾ö¶¨ÁËÏûÏ¢µÄ·ÓɹæÔò¡£ËùÒÔÉú²úÕßÏëÒª·¢ËÍÏûÏ¢£¬Ê×ÏȱØÐëÒªÉùÃ÷Ò»¸öExchangeºÍ¸ÃExchange¶ÔÓ¦µÄBinding¡£

ÔÚRabbit MQÖУ¬ÉùÃ÷Ò»¸öExchangeÐèÒªÈý¸ö²ÎÊý£ºExchangeName£¬ExchangeTypeºÍDurable¡£ExchangeNameÊǸÃExchangeµÄÃû×Ö£¬¸ÃÊôÐÔÔÚ´´½¨BindingºÍÉú²úÕßͨ¹ýpublishÍÆËÍÏûϢʱÐèÒªÖ¸¶¨¡£ExchangeType£¬Ö¸ExchangeµÄÀàÐÍ£¬ÔÚRabbitMQÖУ¬ÓÐÈýÖÖÀàÐ͵ÄExchange£ºdirect £¬fanoutºÍtopic£¬²»Í¬µÄExchange»á±íÏÖ³ö²»Í¬Â·ÓÉÐÐΪ¡£DurableÊǸÃExchangeµÄ³Ö¾Ã»¯ÊôÐÔ£¬Õâ¸ö»áÔÚÏûÏ¢³Ö¾Ã»¯Õ½ÚÌÖÂÛ¡£

ÉùÃ÷Ò»¸öBindingÐèÒªÌṩһ¸öQueueName£¬ExchangeNameºÍBindingKey¡£

ÏÂÃæÊÇÏûÏ¢·¢Ë͵Ĺý³Ì

½¨Á¢Á¬½ÓConnection¡£ÓÉproducerºÍconsumer´´½¨Á¬½Ó£¬Á¬½Óµ½brokerµÄÎïÀí½ÚµãÉÏ¡£

½¨Á¢ÏûÏ¢Channel¡£ChannelÊǽ¨Á¢ÔÚConnectionÖ®Éϵģ¬Ò»¸öConnection¿ÉÒÔ½¨Á¢¶à¸öChannel¡£producerÁ¬½ÓVirtual Host ½¨Á¢Channel£¬ConsumerÁ¬½Óµ½ÏàÓ¦µÄqueueÉϽ¨Á¢Channel¡£

·¢ËÍÏûÏ¢¡£ÓÉProducer·¢ËÍÏûÏ¢µ½BrokerÖеÄExchangeÖС£

·ÓÉת·¢¡£Éú²úÕßProducerÔÚ·¢ËÍÏûϢʱ£¬¶¼ÐèÒªÖ¸¶¨Ò»¸öRoutingKeyºÍExchange£¬ExchangeÊÕµ½ÏûÏ¢ºó¿ÉÒÔ¿´µ½ÏûÏ¢ÖÐÖ¸¶¨µÄRoutingKey£¬ÔÙ¸ù¾Ýµ±Ç°ExchangeµÄExchangeType,°´Ò»¶¨µÄ¹æÔò½«ÏûϢת·¢µ½ÏàÓ¦µÄqueueÖÐÈ¥¡£

ÏûÏ¢½ÓÊÕ¡£Consumer»á¼àÌýÏàÓ¦µÄqueue£¬Ò»µ©queueÖÐÓпÉÒÔÏû·ÑµÄÏûÏ¢£¬queue¾Í½«ÏûÏ¢·¢Ë͸øConsumer¶Ë¡£

ÏûϢȷÈÏ¡£µ±ConsumerÍê³ÉijһÌõÏûÏ¢µÄ´¦ÀíÖ®ºó£¬ÐèÒª·¢ËÍÒ»ÌõACKÏûÏ¢¸ø¶ÔÓ¦µÄQueue¡£QueueÊÕµ½ACKÐÅÏ¢ºó£¬²Å»áÈÏΪÏûÏ¢´¦Àí³É¹¦£¬²¢½«ÏûÏ¢´ÓQueueÖÐÒÆ³ý£»Èç¹ûÔÚ¶ÔÓ¦µÄChannel¶Ï¿ªºó£¬QueueûÓÐÊÕµ½ÕâÌõÏûÏ¢µÄACKÐÅÏ¢£¬¸ÃÏûÏ¢½«±»·¢Ë͸øÁíÍâµÄChannel¡£ÖÁ´ËÒ»¸öÏûÏ¢µÄ·¢ËͽÓÊÕÁ÷³Ì×ßÍêÁË¡£ÏûÏ¢µÄÈ·ÈÏ»úÖÆÌá¸ßÁËͨÐŵĿɿ¿ÐÔ¡£

exchange Óë Queue µÄ·ÓÉ»úÖÆ

exchange ½«ÏûÏ¢·¢Ë͵½ÄÄÒ»¸öqueueÊÇÓÉexchange type ºÍbing ¹æÔò¾ö¶¨µÄ£¬Ä¿Ç°³£ÓõÄÓÐ3ÖÖexchange£¬Direct exchange, Fanout exchange, Topic exchange ¡£Direct exchange Ö±½Óת·¢Â·ÓÉ£¬ÆäʵÏÖÔ­ÀíÊÇͨ¹ýÏûÏ¢ÖеÄroutkey£¬Óëqueue ÖеÄroutkey ½øÐбȶԣ¬Èô¶þÕ߯¥Å䣬Ôò½«ÏûÏ¢·¢Ë͵½Õâ¸öÏûÏ¢¶ÓÁС£Í¨³£Ê¹ÓÃÕâ¸ö¡£

ÒÔÉÏͼµÄÅäÖÃΪÀý£¬ÎÒÃÇÒÔroutingKey=¡±error¡±·¢ËÍÏûÏ¢µ½Exchange£¬ÔòÏûÏ¢»á·Óɵ½Queue1£¨amqp.gen-S9b¡­£¬ÕâÊÇÓÉRabbitMQ×Ô¶¯Éú³ÉµÄQueueÃû³Æ£©ºÍQueue2£¨amqp.gen-Agl¡­£©£»Èç¹ûÎÒÃÇÒÔroutingKey=¡±info¡±»òroutingKey=¡±warning¡±À´·¢ËÍÏûÏ¢£¬ÔòÏûÏ¢Ö»»á·Óɵ½Queue2¡£Èç¹ûÎÒÃÇÒÔÆäËûroutingKey·¢ËÍÏûÏ¢£¬ÔòÏûÏ¢²»»á·Óɵ½ÕâÁ½¸öQueueÖС£

Fanout exchange ¸´ÖÆ·Ö·¢Â·ÓÉ£¬¸Ã·Óɲ»ÐèÒªroutkey£¬µ±exchangeÊÕµ½ÏûÏ¢ºó£¬½«ÏûÏ¢¸´Öƶà·Ýת·¢¸øÓë×Ô¼º°ó¶¨µÄÏûÏ¢¶ÓÁС£

ÉÏͼÖУ¬Éú²úÕߣ¨P£©·¢Ë͵½Exchange£¨X£©µÄËùÓÐÏûÏ¢¶¼»á·Óɵ½Í¼ÖеÄÁ½¸öQueue£¬²¢×îÖÕ±»Á½¸öÏû·ÑÕߣ¨C1ÓëC2£©Ïû·Ñ¡£topic exchange ͨÅä·ÓÉ£¬ÊÇdirect exchangeµÄͨÅä·ûģʽ£¬ÏûÏ¢ÖеÄroutkey¿ÉÒÔд³ÉͨÅäµÄģʽ£¬exchangeÖ§³Ö¡°#¡±ºÍ¡°*¡± µÄͨÅä¡£ÊÕµ½ÏûÏ¢ºó£¬½«ÏûϢת·¢¸øËùÓзûºÏÆ¥Åä±í´ïʽµÄqueue¡£

ÒÔÉÏͼÖеÄÅäÖÃΪÀý£¬routingKey=¡±quick.orange.rabbit¡±µÄÏûÏ¢»áͬʱ·Óɵ½Q1ÓëQ2£¬routingKey=¡±lazy.orange.fox¡±µÄÏûÏ¢»á·Óɵ½Q1£¬routingKey=¡±lazy.brown.fox¡±µÄÏûÏ¢»á·Óɵ½Q2£¬routingKey=¡±lazy.pink.rabbit¡±µÄÏûÏ¢»á·Óɵ½Q2£¨Ö»»áͶµÝ¸øQ2Ò»´Î£¬ËäÈ»Õâ¸öroutingKeyÓëQ2µÄÁ½¸öbindingKey¶¼Æ¥Å䣩£»routingKey=¡±quick.brown.fox¡±¡¢routingKey=¡±orange¡±¡¢routingKey=¡±quick.orange.male.rabbit¡±µÄÏûÏ¢½«»á±»¶ªÆú£¬ÒòΪËüÃÇûÓÐÆ¥ÅäÈκÎbindingKey¡£

ÐèҪעÒâµÄÒ»µãÖ»ÓÐqueue¾ßÓÐ ±£³ÖÏûÏ¢µÄ¹¦ÄÜ£¬exchange²»Äܱ£´æÏûÏ¢¡£

headers headersÀàÐ͵ÄExchange²»ÒÀÀµÓÚrouting keyÓëbinding keyµÄÆ¥Å乿ÔòÀ´Â·ÓÉÏûÏ¢£¬¶øÊǸù¾Ý·¢Ë͵ÄÏûÏ¢ÄÚÈÝÖеÄheadersÊôÐÔ½øÐÐÆ¥Åä¡£ÔÚ°ó¶¨QueueÓëExchangeʱָ¶¨Ò»×é¼üÖµ¶Ô£»µ±ÏûÏ¢·¢Ë͵½Exchangeʱ£¬RabbitMQ»áÈ¡µ½¸ÃÏûÏ¢µÄheaders£¨Ò²ÊÇÒ»¸ö¼üÖµ¶ÔµÄÐÎʽ£©£¬¶Ô±ÈÆäÖеļüÖµ¶ÔÊÇ·ñÍêȫƥÅäQueueÓëExchange°ó¶¨Ê±Ö¸¶¨µÄ¼üÖµ¶Ô£»Èç¹ûÍêȫƥÅäÔòÏûÏ¢»á·Óɵ½¸ÃQueue£¬·ñÔò²»»á·Óɵ½¸ÃQueue¡£¸ÃÀàÐ͵ÄExchangeûÓÐÓõ½¹ý£¨²»¹ýÒ²Ó¦¸ÃºÜÓÐÓÃÎäÖ®µØ£©£¬ËùÒÔ²»×ö½éÉÜ¡£

durability ³Ö¾Ã»¯Óë·Ç³Ö¾Ã»¯¶ÓÁÐ

ÈçºÎʶ±ð£¿ÈçÉÏͼ£¬ÔÚFeatures×Ö¶ÎÀïÓÐÒ»¸öD,¾ÍÊdz־û¯¶ÓÁУ¬Ó¢ÎÄdurable£¨³Ö¾ÃµÄ£©

³Ö¾Ã»¯¶ÓÁкͷdz־û¯¶ÓÁеÄÇø±ðÊÇʲô£¿³Ö¾Ã»¯¶ÓÁлᱻ±£´æÔÚ´ÅÅÌÖУ¬¹Ì¶¨²¢³Ö¾ÃµÄ´æ´¢£¬µ±Rabbit·þÎñÖØÆôºó£¬¸Ã¶ÓÁлᱣ³ÖÔ­À´µÄ״̬ÔÚRabbitMQÖб»¹ÜÀí£¬¶ø·Ç³Ö¾Ã»¯¶ÓÁв»»á±»±£´æÔÚ´ÅÅÌÖУ¬Rabbit·þÎñÖØÆôºó¶ÓÁоͻáÏûʧ¡£

ÈçºÎÑ¡Ôñ£¿Èç¹ûÐèÒª¶ÓÁеÄÍêÕûÐÔ£¬Êý¾ÝÔÚ¶ÓÁÐÖеı£´æÊDZØÐë²»ÔÊÐí¶ªÊ§µÄ£¬ÄÇô¿ÉÒÔʹÓó־û¯¡£¶øµ±ÐèÒª»ñÈ¡µÄÐÅÏ¢ÊÇʵʱµÄ£¬»òÕßÊÇËæ»úµÄÐÅÏ¢£¬²»ÐèÒªÐÅÏ¢µÄ¾«È·ÐÔ»òÍêÕûÐÔ£¬µ«ÊÇ×·Çó»ñÈ¡ÐÔÄÜ£¬¿ÉÒÔÑ¡Ôñ·Ç³Ö¾Ã»¯¶ÓÁС£

2¡¢·Ö²¼Ê½¼¯Èº¼Ü¹¹ºÍ¸ß¿ÉÓÃÐÔ

Éè¼Æ¼¯ÈºµÄÄ¿µÄ

ÔÊÐíÏû·ÑÕߺÍÉú²úÕßÔÚRabbitMQ½Úµã±ÀÀ£µÄÇé¿öϼÌÐøÔËÐÐ

ͨ¹ýÔö¼Ó¸ü¶àµÄ½ÚµãÀ´À©Õ¹ÏûϢͨÐŵÄÍÌÍÂÁ¿

¼¯ÈºÅäÖ÷½Ê½

RabbitMQ¿ÉÒÔͨ¹ýÈýÖÖ·½·¨À´²¿Êð·Ö²¼Ê½¼¯ÈºÏµÍ³£¬·Ö±ðÊÇ£ºcluster,federation,shovel

cluster:

²»Ö§³Ö¿çÍø¶Î£¬ÓÃÓÚͬһ¸öÍø¶ÎÄڵľÖÓòÍø

¿ÉÒÔËæÒâµÄ¶¯Ì¬Ôö¼Ó»òÕß¼õÉÙ

½ÚµãÖ®¼äÐèÒªÔËÐÐÏàͬ°æ±¾µÄRabbitMQºÍErlang

federation:Ó¦ÓÃÓÚ¹ãÓòÍø£¬ÔÊÐíµ¥Ì¨·þÎñÆ÷ÉϵĽ»»»»ú»ò¶ÓÁнÓÊÕ·¢²¼µ½Áíһ̨·þÎñÆ÷ÉϽ»»»»ú»ò¶ÓÁеÄÏûÏ¢£¬¿ÉÒÔÊǵ¥¶À»úÆ÷»ò¼¯Èº¡£federation¶ÓÁÐÀàËÆÓÚµ¥Ïòµã¶ÔµãÁ¬½Ó£¬ÏûÏ¢»áÔÚÁªÃ˶ÓÁÐÖ®¼äת·¢ÈÎÒâ´Î£¬Ö±µ½±»Ïû·ÑÕß½ÓÊÜ¡£Í¨³£Ê¹ÓÃfederationÀ´Á¬½ÓinternetÉϵÄÖмä·þÎñÆ÷£¬ÓÃ×÷¶©ÔÄ·Ö·¢ÏûÏ¢»ò¹¤×÷¶ÓÁС£

shovel:Á¬½Ó·½Ê½ÓëfederationµÄÁ¬½Ó·½Ê½ÀàËÆ£¬µ«Ëü¹¤×÷ÔÚ¸üµÍ²ã´Î¡£¿ÉÒÔÓ¦ÓÃÓÚ¹ãÓòÍø

RabbitMQ cluster ¼¯ÈºÍ¬²½Ô­Àí

ÉÏÃæÍ¼ÖвÉÓÃÈý¸ö½Úµã×é³ÉÁËÒ»¸öRabbitMQµÄ¼¯Èº£¬Exchange AµÄÔªÊý¾ÝÐÅÏ¢ÔÚËùÓнڵãÉÏÊÇÒ»Öµģ¬¶øQueue£¨´æ·ÅÏûÏ¢µÄ¶ÓÁУ©µÄÍêÕûÊý¾ÝÔòÖ»»á´æÔÚÓÚËüËù´´½¨µÄÄǸö½ÚµãÉÏ¡££¬ÆäËû½ÚµãÖ»ÖªµÀÕâ¸öqueueµÄmetadataÐÅÏ¢ºÍÒ»¸öÖ¸ÏòqueueµÄowner nodeµÄÖ¸Õë¡£RabbitMQ¼¯ÈºÔªÊý¾ÝµÄͬ²½

RabbitMQ¼¯Èº»áʼÖÕͬ²½ËÄÖÖÀàÐ͵ÄÄÚ²¿ÔªÊý¾Ý£¨ÀàËÆË÷Òý£©£º

¶ÓÁÐÔªÊý¾Ý£º¶ÓÁÐÃû³ÆºÍËüµÄÊôÐÔ£»

½»»»Æ÷ÔªÊý¾Ý£º½»»»Æ÷Ãû³Æ¡¢ÀàÐͺÍÊôÐÔ£»

°ó¶¨ÔªÊý¾Ý£ºÒ»Õżòµ¥µÄ±í¸ñչʾÁËÈçºÎ½«ÏûϢ·Óɵ½¶ÓÁУ»

vhostÔªÊý¾Ý£ºÎªvhostÄڵĶÓÁС¢½»»»Æ÷ºÍ°ó¶¨ÌṩÃüÃû¿Õ¼äºÍ°²È«ÊôÐÔ£»Òò´Ë£¬µ±Óû§·ÃÎÊÆäÖÐÈκÎÒ»¸öRabbitMQ½Úµãʱ£¬Í¨¹ýrabbitmqctl²éѯµ½µÄqueue£¯user£¯exchange/vhostµÈÐÅÏ¢¶¼ÊÇÏàͬµÄ¡£

ΪºÎRabbitMQ¼¯Èº½ö²ÉÓÃÔªÊý¾Ýͬ²½µÄ·½Ê½£¿

Ò»£¬´æ´¢¿Õ¼ä£¬Èç¹ûÿ¸ö¼¯Èº½Úµã¶¼ÓµÓÐËùÓÐQueueµÄÍêÈ«Êý¾Ý¿½±´£¬ÄÇôÿ¸ö½ÚµãµÄ´æ´¢¿Õ¼ä»á·Ç³£´ó£¬¼¯ÈºµÄÏûÏ¢»ýѹÄÜÁ¦»á·Ç³£Èõ£¨ÎÞ·¨Í¨¹ý¼¯Èº½ÚµãµÄÀ©ÈÝÌá¸ßÏûÏ¢»ýѹÄÜÁ¦£©£»

¶þ£¬ÐÔÄÜ£¬ÏûÏ¢µÄ·¢²¼ÕßÐèÒª½«ÏûÏ¢¸´ÖƵ½Ã¿Ò»¸ö¼¯Èº½Úµã£¬¶ÔÓڳ־û¯ÏûÏ¢£¬ÍøÂçºÍ´ÅÅÌͬ²½¸´ÖƵĿªÏú¶¼»áÃ÷ÏÔÔö¼Ó¡£

RabbitMQ cluster ¼¯ÈºµÄÁ½ÖÖģʽ

ÆÕͨģʽ£ºÄ¬Èϵļ¯ÈºÄ£Ê½¡£

¾µÏñģʽ£º°ÑÐèÒªµÄ¶ÓÁÐ×ö³É¾µÏñ¶ÓÁУ¬´æÔÚÓÚ¶à¸ö½Úµã£¬ÊôÓÚRabbitMQµÄHA·½°¸

ÆÕͨģʽ£ºµ±ÏûÏ¢½øÈëA½ÚµãµÄQueueÖкó£¬consumer´ÓB½ÚµãÀ­È¡Ê±£¬RabbitMQ»áÁÙʱÔÚA¡¢B¼ä½øÐÐÏûÏ¢´«Ê䣬°ÑAÖеÄÏûϢʵÌåÈ¡³ö²¢¾­¹ýB·¢Ë͸øconsumer£¬ËùÒÔconsumerӦƽ¾ùÁ¬½Óÿһ¸ö½Úµã£¬´ÓÖÐÈ¡ÏûÏ¢¡£¸Ãģʽ´æÔÚÒ»¸öÎÊÌâ¾ÍÊǵ±A½Úµã¹ÊÕϺó£¬B½ÚµãÎÞ·¨È¡µ½A½ÚµãÖл¹Î´Ïû·ÑµÄÏûϢʵÌå¡£Èç¹û×öÁ˶ÓÁг־û¯»òÏûÏ¢³Ö¾Ã»¯£¬ÄÇôµÃµÈA½Úµã»Ö¸´£¬È»ºó²Å¿É±»Ïû·Ñ£¬²¢ÇÒÔÚA½Úµã»Ö¸´Ö®Ç°ÆäËü½Úµã²»ÄÜÔÙ´´½¨A½ÚµãÒѾ­´´½¨¹ýµÄ³Ö¾Ã¶ÓÁУ»Èç¹ûûÓг־û¯µÄ»°£¬ÏûÏ¢¾Í»áʧ¶ª¡£ÕâÖÖģʽ¸üÊʺϷdz־û¯¶ÓÁУ¬Ö»ÓиöÓÁÐÊǷdz־õģ¬¿Í»§¶Ë²ÅÄÜÖØÐÂÁ¬½Óµ½¼¯ÈºÀïµÄÆäËû½Úµã£¬²¢ÖØÐ´´½¨¶ÓÁС£¼ÙÈç¸Ã¶ÓÁÐÊdz־û¯µÄ£¬ÄÇôΨһ°ì·¨Êǽ«¹ÊÕϽڵã»Ö¸´ÆðÀ´¡£ÎªÊ²Ã´RabbitMQ²»½«¶ÓÁи´ÖƵ½¼¯ÈºÀïÿ¸ö½ÚµãÄØ£¿ÕâÓëËüµÄ¼¯ÈºµÄÉè¼Æ±¾ÒâÏà³åÍ»£¬¼¯ÈºµÄÉè¼ÆÄ¿µÄ¾ÍÊÇÔö¼Ó¸ü¶à½Úµãʱ£¬ÄÜÏßÐÔµÄÔö¼ÓÐÔÄÜ£¨CPU¡¢Äڴ棩ºÍÈÝÁ¿£¨ÄÚ´æ¡¢´ÅÅÌ£©¡£µ±È»RabbitMQа汾¼¯ÈºÒ²Ö§³Ö¶ÓÁи´ÖÆ£¨ÓиöÑ¡Ïî¿ÉÒÔÅäÖã©¡£±ÈÈçÔÚÓÐÎå¸ö½ÚµãµÄ¼¯ÈºÀ¿ÉÒÔÖ¸¶¨Ä³¸ö¶ÓÁеÄÄÚÈÝÔÚ2¸ö½ÚµãÉϽøÐд洢£¬´Ó¶øÔÚÐÔÄÜÓë¸ß¿ÉÓÃÐÔÖ®¼äÈ¡µÃÒ»¸öƽºâ£¨Ó¦¸Ã¾ÍÊÇÖ¸¾µÏñģʽ£©¡£

¾µÏñģʽ£ºÆäʵÖÊºÍÆÕͨģʽ²»Í¬Ö®´¦ÔÚÓÚ£¬ÏûϢʵÌå»áÖ÷¶¯ÔÚ¾µÏñ½Úµã¼äͬ²½£¬¶ø²»ÊÇÔÚconsumerÈ¡Êý¾ÝʱÁÙʱÀ­È¡¡£¸Ãģʽ´øÀ´µÄ¸±×÷ÓÃÒ²ºÜÃ÷ÏÔ£¬³ýÁ˽µµÍϵͳÐÔÄÜÍ⣬Èç¹û¾µÏñ¶ÓÁÐÊýÁ¿¹ý¶à£¬¼ÓÖ®´óÁ¿µÄÏûÏ¢½øÈ룬¼¯ÈºÄÚ²¿µÄÍøÂç´ø¿í½«»á±»ÕâÖÖͬ²½Í¨Ñ¶´ó´óÏûºÄµô¡£ËùÒÔÔÚ¶Ô¿É¿¿ÐÔÒªÇó½Ï¸ßµÄ³¡ºÏÖÐÊÊÓÃ.

½ÚµãÀàÐÍ

RAM node:ÄÚ´æ½Úµã½«ËùÓеĶÓÁС¢½»»»»ú¡¢°ó¶¨¡¢Óû§¡¢È¨ÏÞºÍvhostµÄÔªÊý¾Ý¶¨Òå´æ´¢ÔÚÄÚ´æÖУ¬ºÃ´¦ÊÇ¿ÉÒÔʹµÃÏñ½»»»»úºÍ¶ÓÁÐÉùÃ÷µÈ²Ù×÷¸ü¼ÓµÄ¿ìËÙ¡£

Disk node:½«ÔªÊý¾Ý´æ´¢ÔÚ´ÅÅÌÖУ¬µ¥½ÚµãϵͳֻÔÊÐí´ÅÅÌÀàÐ͵Ľڵ㣬·ÀÖ¹ÖØÆôRabbitMQµÄʱºò£¬¶ªÊ§ÏµÍ³µÄÅäÖÃÐÅÏ¢¡£

Èç¹ûÊÇÄÚ´æ½áµãÕâÀï¾ÍÏÔʾΪRAM×¢Òâ

RabbitMQÒªÇóÔÚ¼¯ÈºÖÐÖÁÉÙÓÐÒ»¸ö´ÅÅ̽ڵ㣬ËùÓÐÆäËû½Úµã¿ÉÒÔÊÇÄÚ´æ½Úµã£¬µ±½Úµã¼ÓÈë»òÕßÀ뿪¼¯ÈºÊ±£¬±ØÐëÒª½«¸Ã±ä¸ü֪ͨµ½ÖÁÉÙÒ»¸ö´ÅÅ̽ڵ㡣

Èç¹û¼¯ÈºÖÐΨһµÄÒ»¸ö´ÅÅ̽ڵã±ÀÀ£µÄ»°£¬¼¯ÈºÈÔÈ»¿ÉÒÔ±£³ÖÔËÐУ¬µ«ÊÇÎÞ·¨½øÐÐÆäËû²Ù×÷(°üÀ¨´´½¨¶ÓÁС¢½»»»Æ÷¡¢°ó¶¨£¬Ìí¼ÓÓû§¡¢¸ü¸ÄȨÏÞ¡¢Ìí¼ÓºÍɾ³ý¼¯Èº½áµã)£¬Ö±µ½½Úµã»Ö¸´¡£

½â¾ö·½°¸£ºÉèÖÃÁ½¸ö´ÅÅ̽ڵ㣬ÖÁÉÙÓÐÒ»¸öÊÇ¿ÉÓõģ¬¿ÉÒÔ±£´æÔªÊý¾ÝµÄ¸ü¸Ä¡£

Erlang Cookie

Erlang CookieÊDZ£Ö¤²»Í¬½Úµã¿ÉÒÔÏ໥ͨÐŵÄÃÜÔ¿£¬Òª±£Ö¤¼¯ÈºÖеIJ»Í¬½ÚµãÏ໥ͨÐűØÐë¹²ÏíÏàͬµÄErlang Cookie¡£¾ßÌåµÄĿ¼´æ·ÅÔÚ/var/lib/rabbitmq/.erlang.cookie¡£

3¡¢»ù±¾²Ù×÷

rabbitmq¼¯Èº±ØÒªÌõ¼þ

°ó¶¨ÊµÌåip£¬¼´ifconfigËùÄܲéѯµ½µÄ°ó¶¨µ½Íø¿¨ÉϵÄip,ÒÔÏÂÊǰ󶨷½·¨

#±à¼­ÅäÖ÷¾¶ /etc/rabbitmq/rabbitmq-env.conf
NODE_IP_ADDRESS=172.16.136.133

ÅäÖÃÓòÃûÓ³É䵽ʵÌåip

#ÅäÖÃÎļþ1ËùÔÚ·¾¶ /etc/rabbitmq/rabbitmq.config (Èç¹ûÊǼ¯Èº£¬Ã¿Ì¨»úÆ÷¶¼ÐèÒªÐÞ¸ÄÕâ¸ö°ó¶¨±¾»úʵÌåip)
#ÆäÖÐrabbit@masterÊÇ´´½¨¼¯ÈºÊ±ËùÅäÖõIJÎÊý£¬@ºóÃæµÄ²ÎÊýΪÖ÷»úÃû£¬Ê¾ÀýÖÐΪmaster
[
{rabbit, [
{cluster_nodes, {['rabbit@master'], disc}},
{cluster_partition_handling, ignore},
{default_user, <<"guest">>},
{default_pass, <<"guest">>},
{tcp_listen_options, [binary,
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true},
{exit_on_close, false},
{keepalive, true}]}
]},
{kernel, [
{inet_dist_listen_max, 44001},
{inet_dist_listen_min, 44001}
]}
].

#ÅäÖÃÎļþ2 ËùÔÚ·¾¶ /etc/hosts (Èç¹ûÊǼ¯Èº£¬Ã¿Ì¨»úÆ÷¶¼ÐèÒªÐÞ¸ÄÕâ¸ö°ó¶¨±¾»úʵÌåip£¬¶øÇÒhostsÎļþµÄÓ³Éä²»µÃÖØ¸´£¬Èç¹ûÖØ¸´linuxϵͳΪÒÔ×îÏÂÃæÒ»Ìõ¼Ç¼Ϊ׼)
172.16.136.133 master
172.16.136.134 venus
172.16.136.135 venus2

Æô¶¯Í£Ö¹

Í£Ö¹
#»úÆ÷A
service rabbitmq-server stop
epmd -kill
#»úÆ÷B
service rabbitmq-server stop
epmd -kill
#»úÆ÷C
service rabbitmq-server stop
epmd -kill

Æô¶¯·½Ê½1
#»úÆ÷A
service rabbitmq-server start
#»úÆ÷B
service rabbitmq-server start
#»úÆ÷C
service rabbitmq-server start

Æô¶¯·½Ê½2
rabbitmq-server -detached

¼¯ÈºÖØÆô˳Ðò

¼¯ÈºÖØÆôµÄ˳ÐòÊǹ̶¨µÄ£¬²¢ÇÒÊÇÏà·´µÄ¡£ÈçÏÂËùÊö£º

Æô¶¯Ë³Ðò£º´ÅÅ̽ڵã => ÄÚ´æ½Úµã ¹Ø±Õ˳Ðò£ºÄÚ´æ½Úµã => ´ÅÅ̽ڵã ×îºó¹Ø±Õ±ØÐëÊÇ´ÅÅ̽ڵ㣬²»È»¿ÉÄÜ»ØÔì³É¼¯ÈºÆô¶¯Ê§°Ü¡¢Êý¾Ý¶ªÊ§µÈÒì³£Çé¿ö¡£

ÖØ½¨¼¯Èº

×¢1£º´Ë´¦µÄmq¼¯ÈºÖؽ¨ÊDZȽϿìËÙºÍÓÐЧµÄ·½·¨£¬ÃæÏòµÄÊdzõ´Î°²×°»òÕß¿ÉÒÔ½ÓÊÜmqÖÐËù´æÓеÄÊý¾Ý¶ªÊ§µÄÇé¿öÏ£¬±ØÐëÏÈÓÐmqµÄ.jsonºó׺µÄÅäÖÃÎļþ»òÕßÓаÑÎÕдÈ뼯ȺÖÐexchange¡¢queueµÈÅäÖá£

°´Ë³ÐòÍ£Ö¹ËùÓлúÆ÷ÖеÄrabbitmq

#»úÆ÷A
service rabbitmq-server stop
epmd -kill
#»úÆ÷B
service rabbitmq-server stop
epmd -kill
#»úÆ÷C
service rabbitmq-server stop
epmd -kill

ÒÆ³ýrabbitmqÅäÖüǼÓë´æ´¢Îļþ

#λÓÚ /var/lib/rabbitmq/mensia
mv /var/lib/rabbitmq/mensia /var/lib/rabbitmq/mensia.bak

°´Ë³ÐòÆô¶¯ËùÓлúÆ÷ÖеÄrabbitmq

#»úÆ÷C
service rabbitmq-server start
#»úÆ÷B
service rabbitmq-server start
#»úÆ÷A
service rabbitmq-server start

Í£Ö¹±»¼ÓÈ뼯Ⱥ½Úµãapp

±ÈÈçA¡¢B¡¢CÈý̨»úÆ÷£¬½«BºÍC¼ÓÈëµ½AÖÐÈ¥£¬ÐèÒªÖ´ÐÐÒÔÏÂÃüÁî
#»úÆ÷B
rabbitmqctl stop_app
#»úÆ÷C
rabbitmqctl stop_app

½¨Á¢¼¯Èº

×¢Òâ´Ë´¦masterΪΨһûÓÐÖ´ÐÐrabbitmqctl stop_appµÄ»úÆ÷

#»úÆ÷B
rabbitmqctl join_cluster rabbit@master
#»úÆ÷C
rabbitmqctl join_cluster rabbit@master

Æô¶¯¼¯Èº
#»úÆ÷B
rabbitmqctl start_app
#»úÆ÷C
rabbitmqctl start_app

¼ì²é¼¯Èº×´Ì¬

ÔÚÈÎÒâһ̨»úÆ÷ÉÏÖ´ÐÐrabbitmqctl cluster_statusÃüÁî¼´¿É¼ì²é£¬Êä³ö°üº¬¼¯ÈºÖеĽڵãÓëÔËÐÐÖеĽڵ㣬¼æÒÔÖ÷»úÃû±êÖ¾

Ìí¼Ó¼¯ÈºÅäÖÃ

´´½¨Óû§

Àý×ÓÖд´½¨ÁËÁ½¸öÓû§ Ìí¼ÓÓû§add_user,ÉèÖýÇÉ«set_user_tags,Ìí¼ÓrabbitmqÐéÄâÖ÷»úadd_vhost£¬ÉèÖ÷ÃÎÊȨÏÞset_permissions,ÒÔÏÂÊÇÏêϸÓ÷¨

Àý×ÓÖд´½¨ÁËÁ½¸öÓû§ Ìí¼ÓÓû§add_user,ÉèÖýÇÉ«set_user_tags,Ìí¼ÓrabbitmqÐéÄâÖ÷»úadd_vhost£¬ÉèÖ÷ÃÎÊȨÏÞset_permissions,ÒÔÏÂÊÇÏêϸÓ÷¨

# ´´½¨µÚÒ»¸öÓû§
/usr/sbin/rabbitmqctl add_user Óû§Ãû ÃÜÂë
/usr/sbin/rabbitmqctl set_user_tags Óû§Ãû administrator
/usr/sbin/rabbitmqctl set_permissions -p / Óû§Ãû ".*" ".*" ".*"
# ´´½¨µÚ¶þ¸öÓû§
/usr/sbin/rabbitmqctl add_user Óû§Ãû2 ÃÜÂë
/usr/sbin/rabbitmqctl set_user_tags Óû§Ãû2 management
/usr/sbin/rabbitmqctl add_vhost sip_ext
/usr/sbin/rabbitmqctl set_permissions -p sip_ext Óû§Ãû2 '.*' '.*' '.*'

±¸×¢£ºRabbitMQ ÐéÄâÖ÷»ú£¬RabbitMQ ͨ¹ýÐéÄâÖ÷»ú£¨vhost£©À´·Ö·¢ÏûÏ¢¡£ÓµÓÐ×Ô¼º¶ÀÁ¢µÄȨÏÞ¿ØÖÆ£¬²»Í¬µÄvhostÖ®¼äÊǸôÀëµÄ£¬µ¥¶ÀµÄ¡£
ȨÏÞ¿ØÖƵĻù±¾µ¥Î»£ºvhost¡£
Óû§Ö»ÄÜ·ÃÎÊÓëÖ®°ó¶¨µÄvhost¡£
vhostÊÇAMQPÖÐΨһÎÞ·¨Í¨¹ýЭÒéÀ´´´½¨µÄ»ùÔª¡£Ö»ÄÜͨ¹ýrabbitmqctl¹¤¾ßÀ´´´½¨¡£

´ò¿ª15672ÍøÒ³¹ÜÀí¶Ë£¬·ÃÎÊmq

/usr/sbin/rabbitmq-plugins enable rabbitmq_management ±¸×¢£ºÈç¹û·¢ÏÖÃüÁîÖ´ÐÐÍê±ÏûÓдò¿ª´Ë·þÎñ£¬15672¶Ë¿ÚûÓмàÌý£¬ÔòÊÇÓÉÓÚûÓÐÖØÆômqµ¼ÖµÄ

Ôڵײ¿µ¼Èë.jsonºó׺µÄÅäÖÃÎļþ¼´¿É

http://localhost:4000/first-blog/rabbitmq.jpg

Èç¹û¸²¸ÇÁËÓû§ÐèҪʹÓÃÒÔÏÂÃüÁîÐÞ¸ÄmqÓû§ÃÜÂë /usr/sbin/rabbitmqctl change_password Óû§Ãû ÃÜÂë

Ð޸ĽڵãÀàÐÍ

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type dist
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app

³£ÓÃÃüÁî

4¡¢³£¼û¹ÊÕÏ

¼¯Èº×´Ì¬Òì³£

rabbitmqctl cluster_status¼ì²é¼¯Èº½¡¿µ×´Ì¬£¬²»Õý³£½ÚµãÖØÐ¼ÓÈ뼯Ⱥ

·ÖÎöÊÇ·ñ½Úµã¹Òµô£¬ÊÖ¶¯Æô¶¯½Úµã¡£

±£Ö¤ÍøÂçÁ¬Í¨Õý³£

¶ÓÁÐ×èÈû¡¢Êý¾Ý¶Ñ»ý

±£Ö¤ÍøÂçÁ¬Í¨Õý³£

±£Ö¤Ïû·ÑÕßÕý³£Ïû·Ñ£¬Ïû·ÑËÙ¶È´óÓÚÉú²úËÙ¶È

±£Ö¤·þÎñÆ÷TCPÁ¬½ÓÏÞÖÆºÏÀí

ÄÔÁÑ

°´Õýȷ˳ÐòÖØÆô¼¯Èº

±£Ö¤ÍøÂçÁ¬Í¨Õý³£

±£Ö¤´ÅÅ̿ռ䡢cpu¡¢ÄÚ´æ×ã¹»

 

   
3268 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

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