Spring boot + AMQP + RabbitMQ を試す

こんにちわ、猫好きリーマンのほげPGです。

今回は Spring boot + AMQP + RabbitMQ を試してみます。

1、RabbitMQのインストール&起動

RabbitMQを動かす前にerlnagをインストールしておく必要があります。

 

erlnagのインストール

ここ(https://www.erlang.org/downloads)からWindows 64-bit Binary Fileをクリックしotp_win64_22.1.exeをダウンロード

exeを実行し、指示に従ってインストール

環境変数に以下を設定する
変数名:ERLANG_HOME
変数値:C:\Program Files\erl10.5 …erlnagをインストールしたフォルダ

 

RabbitMQのインストール

ここ(https://www.rabbitmq.com/install-windows-manual.html)からrabbitmq-server-windows-3.8.1.zipをダウンロード
ダウンロードしたrabbitmq-server-windows-3.8.1.zipをC:\work に展開する

コマンドプロンプトより、以下を実行
C:\work\rabbitmq_server-3.8.1\sbin\rabbitmq-server start

プラグインの有効か
コマンドプロンプトより、以下を実行
C:\work\rabbitmq_server-3.8.1\sbin\rabbitmq-plugins enable rabbitmq_management

起動確認。

管理画面(http://localhost:15672)にアクセス。

ユーザとパスはguest/guest

 

 

試しにほげって見る
Queuesタブを押下し、NameにhogeQを入力し、Add queueボタン押下

 

Publish messagesのPayloadにHOGEを入力し、PublishMessageボタン押下

 

キューからメッセージを取得

 

HOGEメッセージがキューに積まれているのを確認

2、Exchange

せっかくなので作って置きます。
まず、もうひとつキュー(hogeP)を作成します。

Exchangesタブを押下し、Exchangeを作成します。

作成されたhogeExを押下し、以下3つのbindを作成します。

これで、Exchange=hogeEz、routingkey=hoge にメッセージを送信すれば、hogePとhogeQに積まれます。
Exchange=hogeEz、routingkey=moge にメッセージを送信すれば、hogeQに積まれます。

3、送信側プログラム

pom.xml

HogeApp.java

HogeController.java 送信処理です。

application.yml

起動し、ほげります。

Producerプロジェクトフォルダにて、以下実行

mvn spring-boot:run

ブラウザより、http://localhost:8080/api にアクセス

もうちょいほげります。

postmanやjmeterなどで http://localhost:8080/api/hoge にPOSTで呼ぶ。BodyがhogeQに積まれる。

 

4、受信側プログラム

pom.xml

HogeApp.java

HogeConfig.java

補足)
スレッド名が気に入らなかったので自分で指定しています。

HogeConsumer.java 受信処理です。文字列で取得します。ダミーでウェイトさせています。

application.yml

起動して、受信してみます。

Consumerプロジェクトフォルダにて、以下実行

mvn spring-boot:run

キューからほげ受信できました。

【プロジェクト一式】

HogeRabbitMQConsumer.zip

HogeRabbitMQProducer.zip

 

今回はここまで。

 


◆WEB会議/セミナーシステム『Szia』
https://www.ois-yokohama.co.jp/szia/

◆サーバサイドで動作するミドルウェア『ReDois』
https://www.ois-yokohama.co.jp/redois/wp_redois/

オリエンタルインフォーメイションサービス(OIS)