Spring boot + JMS + ActiveMQ を試す

こんにちわ、

猫好きリーマンのほげPGです。

今回は Spring boot + JMS + ActiveMQ を試してみます。

 

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

ここ(https://activemq.apache.org/)からActiveMQ 5 “Classic”をダウンロードする

ダウンロードしたapache-activemq-5.15.10-bin.zipをC:\java に展開する

コマンドプロンプトより、以下を実行(java.exeのpathは通っている前提)
C:\java\apache-activemq-5.15.10\bin\activemq start

起動確認。

管理画面(http://localhost:8161/admin/)にアクセス。ユーザとパスはadmin/admin

試しにほげって見る

Queue NameにhogeQを入力し、Createボタン押下

 

hogeQの send リンクを押下

 

MessageBody に HOGE を入力し、Sendボタン押下

メッセージがhogeQに積まれました。

 

2、送信側プログラム

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に積まれる。

以下は100こほどjmeterで呼出た結果

3、受信側プログラム

pom.xml

HogeApp.java

補足)
スレッド名が気に入らなかったので自分で指定しています。
プリフェッチを設定しています。初期値が1000なのでキューが溜まっている状態でコンシューマーを起動するとメッセージが1000以上ないと分散処理してくれないので小さくしています。

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

補足)
broker-url: tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1 を指定してもプリフェッチを指定できます。

 

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

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

mvn spring-boot:run

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

【プロジェクト一式】

HogeActiveMQConsumer.zip

HogeActiveMQProducer.zip

 

今回はここまで、次回はRabbitMQを試します。

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