この記事では、人々がRabbitMQのを理解するために、のみアクセスする方法を話し合うMQの原則を議論していないです。実際には、春ブーツ春ブーツを使用して、この記事では提供し、RabbitMQのは非常に簡単で統合さspring-boot-starter-amqp
れたメッセージのさまざまなプロジェクトのサポートを。
次のRabbitMQを簡単にお教えアクセスするには、6つのステップに入りました
1.ポンポンの設定ファイルは、主にjarファイルのパッケージを依存します
<依存性> <のgroupId> org.springframework.amqp </のgroupId> <たartifactId>スプリングウサギ</たartifactId> <バージョン> 2.0.4.RELEASE </バージョン> </依存>
2.プロファイル(application.properties)
##のRabbitMQ spring.rabbitmq.host = 127.0.0.1 spring.rabbitmq.port = 5672 spring.rabbitmq.username = ルート spring.rabbitmq.password = ルート spring.rabbitmq.virtual -host = / #のRabbitMQ消息确认 spring.rabbitmq。パブリッシャ -confirms = 真 spring.rabbitmq.publisherの -returns = 真の ##のRabbitMQの - 設定 rabbitmq.exchange -key = rabbitmq.test.exchange rabbitmq.routing -key = rabbitmq.test.routing.key rabbitmq.queue -name = RabbitMQの.queue.name.test
3.スイッチのキューとバインディング設定
@value( "$ {rabbitmq.queue名}" ) 文字列QUEUENAME。 @value( "$ {rabbitmq.exchangeキー}" ) の文字列exchangeKey。 @value( "$ {rabbitmq.routingキー}" ) の文字列routingKey。 @Bean(値 = "$ {rabbitmq.queue名}" ) パブリックキューinitOrderCancelQueue(){ 戻り 新しい(QUEUENAME)をキュー; } @Bean(値 = "$ {rabbitmq.exchangeキー}" ) 公衆CustomExchange customExchange(){ 地図の<string、オブジェクト>引数= 新規 HashMapの<> (); 返す 新しいですCustomExchange(exchangeKey、 "トピック"、真、偽、引数); } @Bean 公衆結合バインディング(@Qualifier(値= "$ {rabbitmq.queue名}" )キューのキューを、 @Qualifier(値 = "$ {rabbitmq.exchangeキー}" )CustomExchange交換){ 戻りBindingBuilder .bindを(キュー) .TO(交換) .with(routingKey) .AND(exchange.getArguments())。 }
4.生産
@value( "$ {rabbitmq.exchangeキー}" ) の文字列exchangeKey。 @Autowired プライベートAmqpTemplate amqpTemplate。 / ** *发送MQ * @param routingKey * @param OBJ参数 * / 公共 ボイドsendNotificationを(文字列routingKey、オブジェクトobj){ この.amqpTemplate.convertAndSend(exchangeKey、routingKey、OBJ)。 }
5.消費者
@RabbitHandler @RabbitListener(キュー = "$ {rabbitmq.queue名}" ) 公共 ボイド receiveRabbitmqMsg(メッセージmsg、チャネルチャネル、@Header(AmqpHeaders.DELIVERY_TAG)長いタグ){ 文字列FUNCNAME = "接收到RabbitmqMsg" 。 logger.info( "{}:{}" 、FUNCNAME、MSG)。 試す{ } キャッチ(例外e){ } 最後に{ } }
6.テスト
@Autowired RabbitmqProducerプロデューサー。 @value( "$ {rabbitmq.routingキー}" ) の文字列routingKey。 公共 ボイドSENDMSG(){ TestModel testModel = 新しいTestModel()。 testModel.setName( "FXX" )。 testModel.setAge( 18 )。 testModel.setGender( "女の子" ); 試す{ producer.sendNotification(routingKey、testModel)。 } キャッチ(例外e){ logger.error( "系统异常:" + e.toString())。 } }
ゲット!それはシンプルだし、すぐにそれを自分を試してみてください