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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Öмä¼þRabbitMQÖ®ÔËάƪ
 
×÷Õߣº±¡ºÉ±ù
  12449  次浏览      35
 2020-8-11 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜRabbtMQÊÇʲô£¬RabbitMQ°²×°¼°Æô¶¯¡¢Rabbi tMQ³£ÓÃÅäÖýéÉÜ¡¢RabbitMQÃüÁî½éÉܼ°web½çÃæ²Ù×÷µÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ò»¡¢RabbtMQ¼ò½é

RabbitMQµÄ¹Ù·½Õ¾

rabbitMQÊÇÒ»¸öÔÚAMQPЭÒé±ê×¼»ù´¡ÉÏÍêÕûµÄ£¬¿É·þÓÃµÄÆóÒµÏûϢϵͳ¡£Ëû×ñÑ­Mozila Public License¿ªÔ´Ð­Òé¡£²ÉÓÃErlangʵÏֵĹ¤Òµ¼¶µÄÏûÏ¢¶ÓÁÐ(MQ)·þÎñÆ÷¡£

1.1 AMQP

AMQP(¸ß¼¶ÏûÏ¢¶ÓÁÐЭÒé)ÊÇÒ»¸öÒì²½ÏûÏ¢´«µÝËùʹÓõÄÓ¦ÓòãЭÒ鹿·¶£¬×÷ΪÏß·²ãЭÒ飬¶ø²»ÊÇAPI (ÀýÈçJMS)£¬AMQP¿Í»§¶ËÄܹ»ÎÞÊÓÏûÏ¢µÄÀ´Ô´ÈÎÒâ·¢ËͺͽÓÊÜÐÅÏ¢¡£AMQPµÄԭʼÓÃ;ֻÊÇΪ½ðÈÚ½çÌṩ¸ö¿ÉÒԱ˴ËЭ×÷µÄÏûϢЭÒ飬¶øÏÖÔÚµÄÄ¿±êÔòÊÇΪͨÓÃÏûÏ¢¶ÓÁмܹ¹ÌṩͨÓù¹½¨¹¤¾ß¡£Òò´Ë£¬ÃæÏòÏûÏ¢µÄÖмä¼þ(MOM) ϵͳ£¬ÀýÈç·¢²¼/¶©ÔĶÓÁУ¬Ã»ÓÐ×÷Ϊ»ù±¾ÔªËØÊµÏÖ¡£·´¶øÍ¨¹ý·¢Ëͼò»¯µÄAMQʵÌ壬Óû§±»¸³ÓèÁ˹¹½¨ÀýÈçÕâЩʵÌåµÄÄÜÁ¦¡£ÕâЩʵÌåÒ²Êǹ淶µÄÒ»²¿·Ö£¬ ÐγÉÁËÔÚÏß·²ãЭÒé¶¥¶ËµÄÒ»¸ö²ã¼¶: AMQPÄ£ÐÍ¡£ Õâ¸öÄ£ÐÍͳÁËÏûϢģʽ£¬ ÖîÈç֮ǰÌáµ½µÄ·¢²¼ÃŶ©ÔÄ£¬¶ÓÁУ¬ÊÂÎñÒÔ¼°Á÷Êý¾Ý£¬²¢ÇÒÌí¼ÓÁ˶îÍâµÄÌØÐÔ£¬ÀýÈç¸üÒ×ÓÚÀ©Õ¹£¬»ùÓÚÄÚÈݵÄ·ÓÉ¡£

1.2 RabbitMQµÄÁ½´óºËÐÄ×é¼þÊÇExchangeºÍQueue¡£ÈçͼËùʾ£º

1. Server (broker):½ÓÊܿͻ§¶Ë£¨Éú²úÕߺÍÏû·ÑÕߣ©Á¬½Ó£¬ÊµÏÖAMQPÏûÏ¢¶ÓÁкÍ·Óɹ¦ÄܵĽø³Ì¡£

2. Virtual Host:ÆäʵÊÇÒ»¸öÐéÄâ¸ÅÄÀàËÆÓÚȨÏÞ¿ØÖÆ×飬һ¸öVirtual HostÀïÃæ¿ÉÒÔÓÐÈô¸É¸öExchangeºÍQueue,µ«ÊÇȨÏÞ¿ØÖƵÄ×îСÁ£¶ÈÊÇVirtual Host¡£

3. Exchange:½ÓÊÜÉú²úÕß·¢Ë͵ÄÏûÏ¢£¬²¢¸ù¾ÝBinding¹æÔò½«ÏûϢ·Óɸø·þÎñÆ÷ÖеĶÓÁС£ExchangeType¾ö¶¨ÁËExchange·ÓÉÏûÏ¢µÄÐÐΪ£¬ÀýÈ磬ÔÚRabbitMQÖУ¬ ExchangeTypeÓÐdirect¡¢Fanout ºÍTopicÈýÖÖ£¬²»Í¬ÀàÐ͵ÄExchange·ÓɵÄÐÐΪÊDz»Ò»ÑùµÄ¡£

4. Message Queue: ÏûÏ¢¶ÓÁУ¬ÓÃÓÚ´æ´¢»¹Î´±»Ïû·ÑÕßÏû·ÑµÄÏûÏ¢¡£

5. Message:ÓÉHeaderºÍBody×é³É£¬ HeaderÊÇÓÉÉú²úÕßÌí¼ÓµÄ¸÷ÖÖÊôÐԵļ¯ºÏ£¬°üÀ¨MessageÊÇ·ñ±»³Ö¾Ã»¯¡¢ÓÉÄĸöMessage Queue½ÓÊÜ¡¢ÓÅÏȼ¶ÊǶàÉٵȡ£¶øBodyÊÇÕæÕýÐèÒª´«ÊäµÄAPPÊý¾Ý¡£

6.BindingKey:Ëùν°ó¶¨¾ÍÊǽ«Ò»¸öÌØ ¶¨µÄExchange£¨routing-key£© ºÍÒ»¸öÌØ¶¨µÄQueue£¨Binding-Key£©°ó¶¨ÆðÀ´£¬ °ó¶¨¹Ø¼ü×Ö³ÉΪBindingKey¡£

1.3 Exchange·ÖÀàÒ»-¹ã²¥Ê½½»»»Æ÷ÀàÐÍ

1.3.1 Fanout Exchange -¹ã²¥Ê½Â·Óɼü¡£

ÄãÖ»ÐèÒª¼òµ¥µÄ½«¶ÓÁа󶨵½½»»»»úÉÏ¡£Ò»¸ö·¢Ë͵½½»»»»úµÄÏûÏ¢¶¼»á±»×ª·¢µ½Óë¸Ã½»»»»ú°ó¶¨µÄËùÓжÓÁÐÉÏ¡£ºÜÏñ×ÓÍø¹ã²¥£¬Ã¿Ì¨×ÓÍøÄÚµÄÖ÷»ú¶¼»ñµÃÁËÒ»·Ý¸´ÖƵÄÏûÏ¢¡£Fanout ½»»»»úת·¢ÏûÏ¢ÊÇ×î¿ìµÄ¡£

QueueÏòºó¶ËµÄ·Ö·¢·½Ê½£º

1.ƽ¾ù·ÖÅäµÄ·½Ê½£¬±ÈÈçQueue1ÓÐ10Ìõmsg£¬Consumer1ºÍConsumer2¸÷»ñµÃ5Ìõ£¬Consumer1×öµÄ¿ì£¬ÒѾ­×öÍêÁË£¬¶øConsumer2±È½ÏÂý£¬Ö»×öÁË2Ìõ¡£ÕâÑùConsumer1ºÍConsumer2Ö®¼ä¾ÍûÓеõ½ºÜºÃµÄÀûÓá£

2.½â¾öÁË1µÄÎÊÌâ¡£Consumer1ºÍConsumer2ÿÈËÏÈ·¢Ò»Ìõ£¬Ë­×öÍêÁ˾ÍÏòQueue1·µ»ØACK£¬Queue1ÔÚ¶ÓÁÐÖÐɾ³ýÏàÓ¦µÄmsg¡£È»ºó»á½Ó×ÅQueue1·Ö·¢ÏÂÒ»Ìõmsg¡£ÒÔ´ËÀàÍÆ¡£

1.3.2 Direct Exchange -Ö±½Ó½»»¥Ê½´¦Àí·Óɼü¡£

ÐèÒª½«Ò»¸ö¶ÓÁа󶨵½½»»»»úÉÏ£¬ÒªÇó¸ÃÏûÏ¢ÓëÒ»¸öÌØ¶¨µÄ·ÓɼüÍêȫƥÅä¡£ÕâÊÇÒ»¸öÍêÕûµÄÆ¥Åä¡£Èç¹ûÒ»¸ö¶ÓÁа󶨵½¸Ã½»»»»úÉÏÒªÇó·Óɼü¡°cat¡± £¬ÔòÖ»Óб»±ê¼ÇΪ¡°cat"µÄÏûÏ¢²Å±»×ª·¢£¬²»»áת·¢cat.puppy,Ò²²»»áת·¢cat. guard,Ö»»áת·¢cat¡£

1.3.2 Topic Exchange -Ö÷Ìâʽ½»»»Æ÷¡£

ͨ¹ýÏûÏ¢µÄ·Óɹؼü×ֺͰ󶨹ؼü×ÖµÄģʽƥÅ䣬½«ÏûϢ·Óɵ½±»°ó¶¨µÄ¶ÓÁÐÖС£ÕâÖÖ·ÓÉÆ÷ÀàÐÍ¿ÉÒÔ±»ÓÃÀ´Ö§³Ö¾­µäµÄ·¢²¼/¶©ÔÄÏûÏ¢´«ÊäÄ£ÐÍÓÚʹÓÃÖ÷ÌâÃû×Ö¿Õ¼ä×÷ΪÏûϢѰַģʽ£¬½«ÏûÏ¢´«µÝ¸øÄÇЩ²¿·Ö»òÕßÈ«²¿Æ¥ÅäÖ÷ÌâģʽµÄ¶à¸öÏû·ÑÕß¡£Ö÷Ìâ½»»»Æ÷ÀàÐ͵Ť×÷·½Ê½ÈçÏ£º°ó¶¨¹Ø¼ü×ÖÓÃÁã¸ö»ò¶à¸ö±ê¼Ç¹¹³É£¬ ÿһ¸ö±ê¼ÇÖ®¼äÓà ¡°.¡±×Ö·û·Ö¸ô¡£°ó¶¨¹Ø¼ü×Ö±ØÐëÓÃÕâÖÖÐÎʽÃ÷ȷ˵Ã÷£¬²¢Ö§³ÖͨÅä·û£º¡°*¡± Æ¥ÅäÒ»¸ö´Ê×飬¡°#¡± Áã¸ö»ò¶à¸ö´Ê×é¡£Òò´Ë°ó¶¨¹Ø¼ü×Ö¡°*.cat.#"Æ¥Åä·Óɹؼü×Ö¡°usd.cat"ºÍ"eur.cat.db¡±£¬µ«ÊDz»Æ¥Åä"cat.mysql

¶þ¡¢RabbitMQ°²×°¼°Æô¶¯

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

yum install -y rabbitmq-server.noarch

/sbin/rabbitmq-plugins list

/sbin/rabbitmq-plugins enable rabbitmq_management

systemctl start rabbitmq-server.service µÈ¼Û /sbin/rabbitmq-server start | stop | restart | reload

Èý¡¢Rabbi tMQ³£ÓÃÅäÖýéÉÜ

Ò»°ãÇé¿öÏ£¬ RabbitMQµÄĬÈÏÅäÖþÍ×ã¹»ÁË¡£Èç¹ûÏ£ÍûÌØÊâÉèÖõϰ£¬ÓÐÁ½¸ö;¾¶:Ò»¸öÊÇ»·¾³±äÁ¿µÄÅäÖÃÎļþrabbitmq-env. conf £»Ò»¸öÊÇÅäÖÃÐÅÏ¢µÄÅäÖÃÎļþrabbitmq. config¡£

×¢Ò⣬ÕâÁ½¸öÎļþĬÈÏÊÇûÓеģ¬Èç¹ûÐèÒª±ØÐë×Ô¼º´´½¨¡£

1. rabbitmq-env.confÕâ¸öÎļþµÄλÖÃÊÇÈ·¶¨ºÍ²»ÄܸıäµÄ£¬ λÓÚ: /etc/rabbitmqĿ¼Ï (Õâ¸öĿ¼ÐèÒª×Ô¼º´´½¨)¡£

RABBITMQ_NODE_IP_ADDRESS£ºÖ¸¶¨ipµØÖ·

RABBITMQ_NODE_PORT£ºÖ¸¶¨¶Ë¿ÚºÅĬÈÏ5672

RABBITMQ_CONFIG_FILE£ºÅäÖÃÎļþµÄ·¾¶£¬×¢ÒâÅäÖÃÎļþºó׺±ØÐëÊÇconfig

RABBITMQ_LOG_BASE£ºÈÕÖ¾Îļþ·¾¶

2¡¢rabbitm.configÕâÊÇÒ»¸ö±ê×¼µÄerlangÅäÖÃÎļþ¡£Ëü±ØÐë·ûºÏerlangÅäÖÃÎļþµÄ±ê×¼¡£Erlangtuple,½á¹¹Îª{Key, Value} £¬KeyΪatomÀàÐÍ£¬ValueΪһ¸öterm, ÆäÖм¸¸ö¹Ø¼ü²ÎÊýΪ:

1¡¢tcp_listernersÉèÖÃrabbitmqµÄ¼àÌý¶Ë¿Ú£¬Ä¬ÈÏΪ[5672].

2¡¢disk_free_limit´ÅÅ̵ÍˮλÏߣ¬Èô´ÅÅÌÈÝÁ¿µÍÓÚÖ¸¶¨ÖµÔòÍ£Ö¹½ÓÊÕÊý¾Ý¡£

3¡¢vm_memory_high_watermark, ÉèÖÃÄÚ´æµÍˮλÏߣ¬ ÈôµÍÓÚ¸ÃˮλÏߣ¬Ôò¿ªÆôÁ÷¿Ø»úÖÆ£¬Ä¬ÈÏÖµÊÇ0.4.¼´ÄÚ´æ×ÜÁ¿µÄ40%¡£

ËÄ¡¢RabbitMQÃüÁî½éÉܼ°web½çÃæ²Ù×÷

1¡¢rabbitmqctl add_user username password Ìí¼ÓÓû§¼°ÃÜÂ룻

[root@mage-monitor-01~/] #/sbin/rabbitmqctl add_user xiaoming
Creating user "xiaoming" ...
...done.

Ò²¿ÉÒÔÔÚwebÒ³Ãæ²Ù×÷£ºµÇ¼http://10.0.0.201:15672 £¨Äã×Ô¼ºµÄIP£©£¬Óû§guest£¨³¬¼¶Óû§£©£¬ÃÜÂ룺guest

2¡¢rabbitmgctl add_vhost vhostname ´´½¨Vhost£» rabbitmqctl delete_vhost vhostname ɾ³ýVhost£»

[root@mage-monitor-01~/]#/sbin/rabbitmqctl add_vhost test_linux
Creating vhost "test_linux" ...
...done.

3¡¢rabbitmqctl set_permissions -p V_host user ¡°.*¡± ¡°.*¡± ¡°.*¡± °ó¶¨È¨ÏÞ£¬²¢ÇҾ߱¸¶ÁдµÄȨÏÞ£»

[root@mage-monitor-01~/] #/sbin/rabbitmqctl set_permissions -p test_linux xiaoming ".*" ".*" ".*"
Setting permissions for user "xiaoming" in vhost "test_linux" ...
...done.

4¡¢rabbitmqctl change_password username newpassword ÐÞ¸ÄÓû§ÃÜÂ룻 /sbin/rabbitmqctl delete_user <username> ɾ³ýÓû§£»

[root@mage-monitor-01~/] #/sbin/rabbitmqctl delete_user xiaoming
Deleting user "xiaoming" ...
...done.

5¡¢rabbitmqctl list_queues ÏÔʾËùÓжÓÁС£

6¡¢rabbitmqctl list_vhosts ±éÀúËùÓÐÐéÄâÖ÷»úÐÅÏ¢£»

 

 
   
12449 ´Îä¯ÀÀ       35
Ïà¹ØÎÄÕÂ

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

×Ô¶¯»¯ÔËά¹¤¾ß£¨»ùÓÚDevOps£©
»¥ÁªÍøÔËάÓëDevOps
MySQLÐÔÄÜÓÅ»¯¼°ÔËάÅàѵ
ITϵͳÔËά¹ÜÀí
 
×îл¼Æ»®
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 12-11[±±¾©]
LLM´óÄ£ÐÍÓëÖÇÄÜÌ忪·¢ÊµÕ½ 12-18[±±¾©]
ǶÈëʽÈí¼þ²âÊÔ 12-25[±±¾©]
AIÔ­ÉúÓ¦ÓõÄ΢·þÎñ¼Ü¹¹ 1-9[±±¾©]
AI´óÄ£Ðͱàд¸ßÖÊÁ¿´úÂë 1-14[±±¾©]
ÐèÇó·ÖÎöÓë¹ÜÀí 1-22[±±¾©]
 
×îÐÂÎÄÕÂ
DevOps µÀ·¨ÊõÆ÷£¬Á¢Ì廯ʵʩ¿ò¼Ü
DevOps ÖиßЧ²âÊÔ»ù´¡¼Ü¹¹µÄ×î¼Ñʵ¼ù
DevOps ÔÚ¹«Ë¾ÏîÄ¿ÖеÄʵ¼ùÂ䵨
ÈçºÎ»ùÓÚ Kubernetes ¹¹½¨ÍêÕûµÄ DevOps Á÷Ë®Ïß
°¢ÀïÔÆKubernetesʵս
×îпγÌ
DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
»¥ÁªÍøÔËάÓëDevOps
»ùÓÚKubernetes¹¹½¨ÆóÒµÈÝÆ÷ÔÆ
ÆóÒµ¼¶DevOps¹¤×÷ÌåϵÓëÆ½Ì¨
³É¹¦°¸Àý
±±¾© DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
ÉñÁúÆû³µ DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
ÖйúÒÆ¶¯Í¨ÐÅ ÍøÂç¹æ»®Óë¹ÜÀí
ijº½¿Õ¹«Ë¾ IT¹æ»®ÓëÆóÒµ¼Ü¹¹
ij½ðÈÚ¹«Ë¾ IT·þÎñ¹ÜÀí£¨ITIL V3£©