RocketMQはよく使用されるメッセージキューです。以下、ワンクリックでテスト環境を構築し、SpringBoot3.0にインポートする方法について説明します。
テスト環境
ここではテスト環境をDocker Composeを使用してワンクリックでデプロイします。
docker-compose.yamlの設定は以下の通りです:
version: '3.3'
services:
namesrv:
image: apache/rocketmq:4.9.4
container_name: rmqnamesrv
ports:
- 9876:9876
environment:
JAVA_OPT_EXT: "-server -Xms512m -Xmx512m"
volumes:
- /opt/rocketmq/namesrv/logs:/home/rocketmq/logs
command: sh mqnamesrv
restart: always
broker1:
image: apache/rocketmq:4.9.4
container_name: rmqbroker
links:
- namesrv
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
NAMESRV_ADDR: namesrv:9876
JAVA_OPT_EXT: "-server -Xms512m -Xmx512m -Drocketmq.broker.diskSpaceWarningLevelRatio=0.99"
volumes:
- ./logs:/home/rocketmq/logs
- ./store:/home/rocketmq/store
- ./conf/broker.conf:/opt/rocketmq-4.9.4/conf/broker.conf
command: sh mqbroker -c /opt/rocketmq-4.9.4/conf/broker.conf
restart: always
dashbord:
image: apacherocketmq/rocketmq-dashboard:1.0.0
ports:
- 10081:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876"
restart: always
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rocketmq-console
restart: always
ports:
- 11112:8080
depends_on:
- namesrv
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/rocketmq/console/logs:/root/logs
environment:
NAMESRV_ADDR: namesrv:9876
JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Drocketmq.broker.diskSpaceWarningLevelRatio=0.99"
broker.confの設定は以下の通りです:
brokerClusterName = DefaultCluster
brokerName = broker-1
brokerId = 0
deleteWhen = 04
fileReservedTime = 72
mapedFileSizeConsumeQueue=300000
mapedFileSizeCommitLog=1073741824
maxMessageSize=65536
autoCreateSubscriptionGroup=true
autoCreateTopicEnable=true
defaultTopicQueueNums=4
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = xxx.xxx.x.x //ここにあなたのローカルエリアネットワークのIPを記入してください。
これら2つのファイルを準備した後、Docker-compose.yamlがあるディレクトリで以下のコマンドを実行します。
docker compose up -d //旧バージョンではdocker-compose up -d
起動が完了したら、127.0.0.1:10081にアクセスしてダッシュボードで起動状態を確認できます。
SpringBoot3.0へのインポート
このブログを書いている時点では、まだ2.2.3バージョンです。
implementation 'org.apache.rocketmq:rocketmq-spring-boot-starter:2.2.3'
このバージョンを使用する場合は、META-INF内で手動で以下をインポートする必要があります。
org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration