±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚdouban£¬ÎÄÕ½éÉÜÁËRabbitMq£¬AMQP
ÐÒéÖеĻù±¾¸ÅÄÒÔ¼°ÈçºÎÔÚ¼ÆËã»úÉϲ¿ÊðRabbitMqµÄ·þÎñ¶ËµÈÏà¹ØÄÚÈÝ¡£ |
|
RabbitMqÏûÏ¢Öмä¼þ½éÉÜ&ΪʲôҪʹÓÃÏûÏ¢Öмä¼þ&ʲôʱºòʹÓÃÏûÏ¢Öмä¼þ
ÎÒÃÇÓÃjavaÀ´¾ÙÀý×Ó£¬ ´ò¸ö±È·½ ÎÒÃǿͻ§¶Ë·¢ËÍÒ»¸öϵ¥ÇëÇó¸ø¶©µ¥ÏµÍ³£¨order£©¶©µ¥ÏµÍ³·¢ËÍÁË
Ò»¸öÇëÇó¸øÎÒÃÇµÄ¿â´æÏµÍ³¸æËßËûÐèÒª¸ü¸Ä¿â´æÁË£¬ ÎÒÒѾϵ¥ÁË£¬ ÕâÀ
ÿһ¸öÇëÇóÎÒÃǶ¼¿ÉÒÔ¿´×÷Ò»ÌõÏûÏ¢£¬
µ«ÊÇ ÎÒÃǿͻ§¶ËÐèÒªµÈ´ý¶©µ¥ÏµÍ³¸æËßÎÒÕâÌõÏûÏ¢µÄ´¦Àí½á¹û£¨ÎÒµ½µ×ÓÐûÓÐϵ¥³É¹¦£©
µ«ÊÇ ¶©µ¥ÏµÍ³²»ÐèÒªÖªµÀ¿â´æÏµÍ³ÕâÌõÏûÏ¢µÄ´¦ÀíÇé¿ö ÒòΪÎÞÂÛÄã¿â´æÓÐûÓи͝³É¹¦£¬ ÎÒ¶©µ¥»¹ÊÇÏÂÁË£¬
ÒòΪÊÇÏÈÏÂÍêÁ˶©µ¥£¨Ï³ɹ¦ÁË£© ²ÅÈ¥¸ü¸Ä¿â´æ£¬ ¿â´æÈç¹û¸ü¸Ä³öBUGÁË ÄÇÊÇ¿â´æÏµÍ³µÄÎÊÌ⣬ Õâ¸öBUG²»»áÓ°Ïì¶©µ¥ÏµÍ³¡£Èç¹ûÕâÀïÄãÄÜÀí½âµÄ»°£¬
ÄÇôÎÒÃǾÍÄÜ·¢ÏÖ ÎÒÃÇÓû§·¢Ë͵ÄÕâÌõÏûÏ¢£¨Ï¶©µ¥£©£¬ ÊÇÐèҪͬ²½µÄ£¨ÎÒÐèÒªÖªµÀ½á¹û£©£¬ ¶©µ¥·¢Ë͸ø¿â´æµÄÏûÏ¢£¬ÊÇ¿ÉÒÔÒì²½µÄ£¨ÎÒ²»ÏëÖªµÀÄã¿â´æµ½µ×¸ÄÁËû£¬
ÎÒÖ»ÊÇ֪ͨÄãÎÒÕâ±ß³É¹¦ÏÂÁËÒ»¸ö¶©µ¥£©
ÄÇôÈç¹ûÎÒÃÇ»¹°´ÔÀ´µÄ·½Ê½È¥ÊµÏÖÕâ¸öÐèÇóµÄ»°£¬ ÄÇô½á¹û»áÊÇÕâÑù£º

ÄÇ¿ÉÄÜÓÐͬѧ˵ÁË£¬ ÎÒÃǶ©µ¥ÏµÍ³¿ª±ÙÏß³ÌÈ¥·ÃÎÊ¿â´æÏµÍ³²»¾ÍºÃÁËÂð£¿

##
ʹÓÃÏ̳߳ؽâ¾ö ȷʵ¿ÉÒÔ£¬ µ«ÊÇÒ²ÓÐËûµÄȱµã£¬ ÄÇô µ½µ×ÔõôÀ´ÍêÃÀ½â¾öÕâ¸öÎÊÌâÄØ£¿

Èç¹ûÕâÕÅͼÄÜÀí½âµÄ»°£¬ ÄÇô Õâ¸öÏûϢϵͳ£¬ ¾ÍÊÇÎÒÃǵÄÏûÏ¢Öмä¼þ¡£
RabbitMq½éÉÜ&AMQP½éÉÜ
µ¼Óï:ÎÒÃǸոսéÉÜÁËʲôÊÇÏûÏ¢Öмä¼þ£¬ ÄÇôRabbitMq¾ÍÊǶÔÓÚÏûÏ¢Öмä¼þµÄÒ»ÖÖʵÏÖ£¬ÊÐÃæÉÏ»¹ÓкܶàºÜ¶àʵÏÖ£¬
±ÈÈçRabbitMq¡¢ActiveMq¡¢ZeroMq¡¢kafka£¬ÒÔ¼°°¢À↑ԴµÄRocketMQµÈµÈ
ÎÒÃÇÕâ½ÚÖ÷Òª½²RabbitMq

AMQP
ÕâÀïÒýÓðٶȵÄÒ»¾ä»° ÔÙ¼ÓÒÔÎÒµÄÀí½â£º AMQP ÆäʵºÍHttpÒ»Ñù
¶¼ÊÇÒ»ÖÖÐÒ飬 Ö»²»¹ý HttpÊÇÕë¶ÔÍøÂç´«ÊäµÄ£¬ ¶øAMQPÊÇ»ùÓÚÏûÏ¢¶ÓÁеÄ
AMQP ÐÒéÖеĻù±¾¸ÅÄ
Broker: ½ÓÊպͷַ¢ÏûÏ¢µÄÓ¦Óã¬ÎÒÃÇÔÚ½éÉÜÏûÏ¢Öмä¼þµÄʱºòËù˵µÄÏûϢϵͳ¾ÍÊÇMessage
Broker¡£
Virtual host: ³öÓÚ¶à×â»§ºÍ°²È«ÒòËØÉè¼ÆµÄ£¬°ÑAMQPµÄ»ù±¾×é¼þ»®·Öµ½Ò»¸öÐéÄâµÄ·Ö×éÖУ¬ÀàËÆÓÚÍøÂçÖеÄnamespace¸ÅÄî¡£µ±¶à¸ö²»Í¬µÄÓû§Ê¹ÓÃͬһ¸öRabbitMQ
serverÌṩµÄ·þÎñʱ£¬¿ÉÒÔ»®·Ö³ö¶à¸övhost£¬Ã¿¸öÓû§ÔÚ×Ô¼ºµÄvhost´´½¨exchange£¯queueµÈ¡£
Connection: publisher£¯consumerºÍbrokerÖ®¼äµÄTCPÁ¬½Ó¡£¶Ï¿ªÁ¬½ÓµÄ²Ù×÷Ö»»áÔÚclient¶Ë½øÐУ¬Broker²»»á¶Ï¿ªÁ¬½Ó£¬³ý·Ç³öÏÖÍøÂç¹ÊÕÏ»òbroker·þÎñ³öÏÖÎÊÌâ¡£
Channel: Èç¹ûÿһ´Î·ÃÎÊRabbitMQ¶¼½¨Á¢Ò»¸öConnection£¬ÔÚÏûÏ¢Á¿´óµÄʱºò½¨Á¢TCP
ConnectionµÄ¿ªÏú½«ÊǾ޴óµÄ£¬Ð§ÂÊÒ²½ÏµÍ¡£ChannelÊÇÔÚconnectionÄÚ²¿½¨Á¢µÄÂß¼Á¬½Ó£¬Èç¹ûÓ¦ÓóÌÐòÖ§³Ö¶àỊ̈߳¬Í¨³£Ã¿¸öthread´´½¨µ¥¶ÀµÄchannel½øÐÐͨѶ£¬AMQP
method°üº¬ÁËchannel id°ïÖú¿Í»§¶ËºÍmessage brokerʶ±ðchannel£¬ËùÒÔchannelÖ®¼äÊÇÍêÈ«¸ôÀëµÄ¡£Channel×÷ΪÇáÁ¿¼¶µÄConnection¼«´ó¼õÉÙÁ˲Ù×÷ϵͳ½¨Á¢TCP
connectionµÄ¿ªÏú¡£
Exchange: messageµ½´ïbrokerµÄµÚÒ»Õ¾£¬¸ù¾Ý·Ö·¢¹æÔò£¬Æ¥Åä²éѯ±íÖеÄrouting
key£¬·Ö·¢ÏûÏ¢µ½queueÖÐÈ¥¡£³£ÓõÄÀàÐÍÓУºdirect (point-to-point), topic
(publish-subscribe) and fanout (multicast)¡£
Queue: ÏûÏ¢×îÖÕ±»Ë͵½ÕâÀïµÈ´ýconsumerÈ¡×ß¡£Ò»¸ömessage¿ÉÒÔ±»Í¬Ê±¿½±´µ½¶à¸öqueueÖС£
Binding: exchangeºÍqueueÖ®¼äµÄÐéÄâÁ¬½Ó£¬bindingÖпÉÒÔ°üº¬routing
key¡£BindingÐÅÏ¢±»±£´æµ½exchangeÖеIJéѯ±íÖУ¬ÓÃÓÚmessageµÄ·Ö·¢ÒÀ¾Ý¡£
ExchangeµÄÀàÐÍ:
direct :
ÕâÖÖÀàÐ͵Ľ»»»»úµÄ·ÓɹæÔòÊǸù¾ÝÒ»¸öroutingKeyµÄ±êʶ£¬½»»»»úͨ¹ýÒ»¸öroutingKeyÓë¶ÓÁаó¶¨
£¬ÔÚÉú²úÕßÉú²úÏûÏ¢µÄʱºò Ö¸¶¨Ò»¸öroutingKey µ±°ó¶¨µÄ¶ÓÁеÄroutingKey ÓëÉú²úÕß·¢Ë͵ÄÒ»Ñù
ÄÇô½»»»»ú»á°ÉÕâ¸öÏûÏ¢·¢Ë͸ø¶ÔÓ¦µÄ¶ÓÁС£
fanout:
ÕâÖÖÀàÐ͵Ľ»»»»ú·ÓɹæÔòºÜ¼òµ¥£¬Ö»ÒªÓëËû°ó¶¨Á˵ĶÓÁУ¬ Ëû¾Í»á°ÉÏûÏ¢·¢Ë͸ø¶ÔÓ¦¶ÓÁУ¨ÓëroutingKeyû¹ØÏµ£©
topic:(ÒòΪ*ÔÚÕâ¸ö±Ê¼ÇÈí¼þÀïÃæÊǹؼü×Ö£¬ËùÒÔÏÂÃæ¾ÍÓÃÐÇÌæ»»µôÁË)ÕâÖÖÀàÐ͵Ľ»»»»ú·ÓɹæÔòÒ²ÊǺÍroutingKeyÓйØ
Ö»²»¹ý topicËû¿ÉÒÔ¸ù¾Ý:ÐÇ,#£¨ ÐǺŴú±í¹ýÂËÒ»µ¥´Ê£¬#´ú±í¹ýÂ˺óÃæËùÓе¥´Ê£¬ ÓÃ.¸ô¿ª£©À´Ê¶±ðroutingKey
ÎÒ´ò¸ö±È·½ ¼ÙÉè ÎҰ󶨵ÄroutingKey ÓжÓÁÐAºÍB AµÄroutingKeyÊÇ£ºÐÇ.user
BµÄroutingKeyÊÇ: #.user
ÄÇôÎÒÉú²úÒ»ÌõÏûÏ¢routingKey Ϊ£º error.user
ÄÇô´Ëʱ 2¸ö¶ÓÁж¼ÄܽÓÊܵ½£¬ Èç¹û¸ÄΪ topic.error.user ÄÇôÕâʱºò Ö»ÓÐBÄܽÓÊܵ½ÁË
headers:Õâ¸öÀàÐ͵Ľ»»»»úºÜÉÙÓõ½£¬ËûµÄ·ÓɹæÔò ÓëroutingKeyÎÞ¹Ø
¶øÊÇͨ¹ýÅжÏheader²ÎÊýÀ´Ê¶±ðµÄ£¬ »ù±¾ÉÏûÓÐÓ¦Óó¡¾°£¬ÒòΪÉÏÃæµÄÈýÖÖÀàÐÍÒѾÄÜÓ¦¸¶ÁË¡£
RabbitMQ
MQ£º message Queue ¹ËÃû˼Òå ÏûÏ¢¶ÓÁУ¬ ¶ÓÁдó¼Ò¶¼ÖªµÀ£¬
´æ·ÅÄÚÈݵÄÒ»¸ö¶«Î÷£¬ ´æ·ÅµÄÄÚÈÝÏȽøÏȳö£¬ ÏûÏ¢¶ÓÁУ¬ Ö»ÊÇÀïÃæ´æ·ÅµÄÄÚÈÝÊÇÏûÏ¢¶øÒÑ¡£
RabbitMq ÊÇÒ»¸ö¿ªÔ´µÄ »ùÓÚAMQPÐÒéʵÏÖµÄÒ»¸öÍêÕûµÄÆóÒµ¼¶ÏûÏ¢Öмä¼þ£¬·þÎñ¶ËÓïÑÔÓÉErlang£¨ÃæÏò²¢·¢±à³Ì£©ÓïÑÔ±àд
¶ÔÓڸ߲¢·¢µÄ´¦ÀíÓÐ×ÅÌìÈ»µÄÓÅÊÆ£¬¿Í»§¶ËÖ§³Ö·Ç³£¶àµÄÓïÑÔ£º
Python
Java
Ruby
PHP
C#
JavaScript
Go
Elixir
Objective-C
Swift
RabbitMQ·þÎñ¶Ë²¿Êð
ÔÚ½éÉÜÏûÏ¢Öмä¼þµÄʱºòËùÌáµ½µÄ¡°ÏûϢϵͳ¡± ±ãÊÇÎÒÃÇÕâ½ÚµÄÖ÷Ì⣺RabbitMq
ÈçͬredisÒ»Ñù ËûÒ²ÊDzÉÓÃc/s¼Ü¹¹ ÓÉ·þÎñ¶Ë Óë¿Í»§¶Ë×é³É£¬ ÎÒÃÇÏÖÔÚÎÒÃǼÆËã»úÉϲ¿ÊðËûµÄ·þÎñ¶Ë
ÓÉÓÚÎÒÃǸոսéÉܹýÁËRabbitMQ·þÎñ¶ËÊÇÓÉErlangÓïÑÔ±àдËùÒÔÎÒÃÇÕâÀïÏÈÏÂÔØErlangÓïÑԵĻ·¾³
×¢Ò⣺Èç¹ûÊÇÔÚ¹ÙÍøÏµÄRabbitMQ·þÎñ¶ËµÄ»° ErlangÓïÑԵİ汾²»ÄÜÌ«µÍ£¬
²»È»ÒªÐ¶Ôصô¾ÉµÄÈ¥×°Ðµģ¬ ÎÒÃÇÕâÀïÏÂÔØOTP21.0°æ±¾Ö±½Ó´ÓÍâÍøÏÂÔØ»áºÜÂý£¬ ÎÒÕâÀïÖ±½ÓÌùÉϰٶÈÍøÅ̵ĵØÖ·(ÒòΪÕâ¸ö¶«Î÷»¹ÊÇÓеã´óµÄ)
https://pan.baidu.com/s/1pZJ8l2f3omrgnuCm9a8DVA
ÎÒÃÇÔÙÈ¥¹ÙÍøÏÂÔØ ËûµÄ·þÎñ¶Ë°²×°°ü
https://www.rabbitmq.com/download.html
¸ù¾Ý×Ô¼ºµÄϵͳѡÔñÏÂÔØ¼´¿É
×¢Ò⣡ ÐèÒªÏÈÏÂÔØErlangÔÙÏÂÔØ°²×°°ü°²×°£¬ ²»È»°²×°RabbitMQ·þÎñ¶ËµÄʱºò»áÌáʾÄã±¾µØÃ»ÓÐErlang»·¾³
°²×°µÄ»°£¬ »ù±¾ÉϾÍÊÇĬÈϵÄÑ¡Ïî²»ÓøÄ
ÈçºÎ¿´RabbitMq°²×°Íê³ÉÁË£¿ ÔÚϵͳ-·þÎñÖÐÕÒµ½Èçϼ´¿É£º

°üÀ¨Æô¶¯ Í£Ö¹ ÖØÆô ·þÎñµÈ
RabbitMQ°²×°»á¸½´øÒ»¸ö¹ÜÀí¹¤¾ß£¨·½±ãÎÒÃÇÄÜÖ±¹ÛµÄ²é¿´Õû¸öRabbitMQµÄÔËÐÐ״̬ºÍÏêϸÊý¾ÝµÈ£¬ÓеãÏñNavicat
¶ÔÓ¦MysqlµÄ¹ØÏµ£© ÖµµÃÒ»ÌáµÄÊÇ£¬ ¹ÜÀí¹¤¾ßºÍRabbitMQÊÇÁ½ÂëÊ ϣÍûͬѧÃDz»Òª»ìÏ¡ÁË¡£
¹ÜÀí¹¤¾ßÆô¶¯·½Ê½£º
µ½ÄãÃǰ²×°µÄ RabbitMQ Server\rabbitmq_server-3.7.12\sbin
Ŀ¼ÏÂÃæ Ö´ÐÐÒ»ÌõcmdÃüÁ
rabbitmq-plugins enable rabbitmq_management
Ö±½Ó¸´ÖÆÕâÌõÃüÁî¼´¿É £¬ µ±È» ÏÓÿ´Î¶¼ÒªÈ¥Ä¿Â¼ÖÐÈ¥Ö´ÐеÄÂé·³µÄ»°£¬
¿ÉÒÔÅäÖÃÒ»¸ö»·¾³±äÁ¿ »òÕßÔÚÎÒÃǵĿªÊ¼²Ëµ¥À¸ÖÐÕÒµ½Õâ¸ö£º

ÊäÈëÍêÆô¶¯ÃüÁîºó ÉÔ΢µÈһϻáÓнá¹û·µ»Ø È»ºó¿ÉÒÔ´ò¿ªä¯ÀÀÆ÷ ÊäÈë
http://127.0.0.1:15672
·ÃÎʹÜÀíÒ³Ãæ£º

ĬÈÏÕ˺ÅÃÜÂë¶¼ÊÇ
guest ¼´
username £ºguest
password£ºguest
µÇ¼½øÈ¥Ö®ºó»á¿´µ½ÈçϽçÃæ£¨ÒòΪÎÒ²»Ð¡ÐÄ×°ÁË2´ÎRabbitMq ËùÒÔÕâÀïÄÜ¿´µ½¶¼Öظ´ÁË£¬
ÄãÃÇ×Ô¼ºÄDz»»áÖØ¸´£¬È»ºóÎÒÃǸոÕ˵ÁË ¹ÜÀí¹¤¾ßºÍrabbitmq ÊÇÁ½ÂëÊ ËùÒÔ¶Ë¿ÚÒ²¾Í²»Ò»Ñù£©

Õâ¸öÒ³ÃæÔڱʼÇÀïÃæ½éÉÜÆðÀ´¿ÉÄܱȽϸ´ÔÓ£¬ ¾Í²»Ò»Ò»½éÉÜÁË£¬ ÎÒÕâÀï½²¸öÖØµã£¬
¾ÍÊÇÏßÉÏ»·¾³ÏÂÒ»¶¨Òª°ÉguestÓû§£¨µ±È» guestÕâ¸öÓû§Ö»Äܱ¾»ú²ÅÄܵǽ£©É¾µô²¢ÇÒмÓÒ»¸öÓû§£¬
ÕâÀï¾ÍÑÝʾһÏÂÕâ¸ö¹¦ÄÜ
Ê×ÏÈ µã»÷adminҳǩ£¬ ÔÚÏÂÃæÕÒµ½Add User

È»ºóÊäÈëÕ˺ŠÃÜÂë È·ÈÏÃÜÂë Õâ¸öTagsÆäʵÊÇÒ»¸öÓû§È¨ÏÞ±êÇ©£¬
¹ØÓÚËûµÄ½éÉÜ¿ÉÒÔ¿´¹Ù·½½éÉÜ£¨µãÅÔ±ßÄǸöСÎʺžͺÃÁË£¬ÎÒÕâÀïÖ±½Ó·ÒëËûµÄ½éÉÜ£©



ÌîдÍêÖ®ºóµã»÷AddUser ¾Í¿ÉÒÔÌí¼ÓÒ»¸öÓû§ÁË£¬ Ìí¼ÓÍêÓû§Ö®ºó»¹Òª¸øÕâ¸öÓû§Ìí¼Ó¶ÔÓ¦µÄȨÏÞ£¨×¢£ºTarg²»µÈÓÚȨÏÞ£©

±ÈÈç˵ ÎÒ¸Õ¸ÕÌí¼ÓÁËÒ»¸öjojo½ÇÉ«
µã»÷Õâ¸öjojo¿ÉÒÔ½øÈ¥¸øËûÌí¼ÓȨÏÞ Õâ¸öȨÏÞ¿ÉÒÔÊÇ Virtual
host ¼¶±ðµÄ Ò²¿ÉÒÔÊǽ»»»»ú¼¶±ðµÄ ÉõÖÁÊÇϸ»¯µ½Ä³Ò»¸ö¶Áд²Ù×÷ ÎÒÕâÀï¾Í¸øËûÌí¼ÓÒ»¸öVirtual
hostȨÏÞ

ÕâÀï ÎÒÃǸøÁËËû testhostÕâ¸öVirtual hostµÄȨÏÞ
ÕýÔòÆ¥Åä¶¼ÊÇ* Ò²¾ÍÊÇËùÓÐȨÏÞ
È»ºóµã»÷setÌí¼ÓÍê±Ï
ÄÇô¹ÜÀíÒ³Ãæ ÎÒÃǾͽ²µ½ÕâÀï
RabbitMq¿ìËÙ¿ªÊ¼
ÒòΪÎÒÃÇÕâÀïÊÇÓÃjavaÀ´×÷Ϊ¿Í»§¶Ë£¬ ÎÒÃÇÊ×ÏÈÒýÈëmavenÒÀÀµ£º
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.1.2</version> </dependency> |
£¨×¢ÒâµÄÊÇ£¬ ÎÒÕâÀïÒýÈëµÄÊÇ5.xµÄrabbitmq¿Í»§¶Ë°æ±¾£¬
ÄÇôÎÒÃÇjdkµÄ°æ±¾×îºÃÔÚ8ÒÔÉÏ£¬·´Ö®£¬ ÕâÀï¾Í½¨ÒéʹÓÃ4.xµÄ°æ±¾£¬ÕâÀï½ö½öÌÖÂÛjdk8 ÆäËûµÄ°æ±¾²»×öÌÖÂÛ£©
Ê×ÏÈ ÎÒÃDZàдһ¸öÁ¬½ÓµÄ¹¤¾ßÀࣺ
packagecom.luban.util;
importcom.rabbitmq.client.Connection;
importcom.rabbitmq.client.ConnectionFactory;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
public classConnectionUtil {
public static final StringQUEUE_NAME = "testQueue";
public static final StringEXCHANGE_NAME = "exchange";
public static Connection getConnection() throws
Exception{
//´´½¨Ò»¸öÁ¬½Ó¹¤³§
ConnectionFactory connectionFactory = new ConnectionFactory();
//ÉèÖÃrabbitmq ·þÎñ¶ËËùÔÚµØÖ· ÎÒÕâÀïÔÚ±¾µØ¾ÍÊDZ¾µØ
connectionFactory.setHost("127.0.0.1");
//ÉèÖö˿ںţ¬Á¬½ÓÓû§Ãû£¬ÐéÄâµØÖ·µÈ
connectionFactory.setPort(5672);
connectionFactory.setUsername("jojo");
connectionFactory.setPassword("jojo");
connectionFactory.setVirtualHost("testhost");
returnconnectionFactory.newConnection();
}
} |
È»ºóÎÒÃDZàдһ¸öÏû·ÑÕߣ¨producer£©£¬ºÍÒ»¸öÉú²úÕߣ¨consumer£©£º
Éú²úÕߣº
public classConsumer
{
public static void sendByExchange(Stringmessage)
throws Exception{
Connectionconnection = ConnectionUtil.getConnection();
Channelchannel = connection.createChannel();
//ÉùÃ÷¶ÓÁÐ
channel.queueDeclare(ConnectionUtil.QUEUE_NAME,
true,false,false,null);
// ÉùÃ÷exchange
channel.exchangeDeclare(ConnectionUtil.EXCHANGE_NAME,
"fanout");
//½»»»»úºÍ¶ÓÁаó¶¨
channel.queueBind(ConnectionUtil.QUEUE_NAME,
ConnectionUtil.EXCHANGE_NAME, "");
channel.basicPublish(ConnectionUtil.EXCHANGE_NAME,
"", null, message.getBytes());
System.out.println("·¢Ë͵ÄÐÅϢΪ:"+ message);
channel.close();
connection.close();
}
} |
Ïû·ÑÕߣº
public classProducer
{
public static void getMessage() throws Exception{
Connectionconnection = ConnectionUtil.getConnection();
Channelchannel = connection.createChannel();
// channel.queueDeclare(ConnectionUtil.QUEUE_NAME,
true,false,false,null);
DefaultConsumer deliverCallback = new DefaultConsumer(channel)
{
@Override
public void handleDelivery(StringconsumerTag,
Envelope envelope, AMQP.BasicPropertiesproperties,
byte[] body) throws IOException{
System.out.println(new String(body, "UTF-8"));
}
};
channel.basicConsume(ConnectionUtil.QUEUE_NAME,
deliverCallback);
}
} |
ÕâÀ ÎÒÃÇÑÝʾ°ó¶¨fanoutµÄÀàÐ͵Ľ»»»»ú£¬ ËùÒÔ²»ÐèÒªroutingKey
¾Í¿ÉÒÔ·ÓÉÖ»ÐèÒª°ó¶¨¼´¿É
£¨¿ÉÄÜÓÐͬѧҪÎÊÁË£¬ Èç¹ûûÓа󶨽»»»»úÔõô°ìÄØ£¿ ûÓа󶨽»»»»úµÄ»°£¬
ÏûÏ¢»á·¢¸ørabbitmqĬÈϵĽ»»»»úÀïÃæ ĬÈϵĽ»»»»úÒþʽµÄ°ó¶¨ÁËËùÓеĶÓÁУ¬Ä¬ÈϵĽ»»»»úÀàÐÍÊÇdirect
·Óɽ¨¾ÍÊǶÓÁеÄÃû×Ö£©
»ù±¾ÉÏÕâÑù×ӵϰ¾ÍÒѾ½øÐÐÒ»¸ö¿ìËÙÈëÃÅÁË£¬ ÓÉÓÚÎÒÃÇÏÖÔÚ×öÏîÄ¿»ù±¾É϶¼ÊÇÓÃspring
boot£¨¾ÍËãûÓÃspring bootÒ²ÓÃspring °É£© ËùÒÔºóÃæÎÒÃÇÖ±½Ó»ùÓÚspring bootÀ´½²½â£¨rabbitmqµÄÌØÐÔ£¬ÊµÕ½µÈ£©
|