LoginSignup
0
0

RocketMQ、Docker Composeによるテスト環境の構築およびSpringBoot3.0へのインポート

Posted at

RocketMQはよく使用されるメッセージキューです。以下、ワンクリックでテスト環境を構築し、SpringBoot3.0にインポートする方法について説明します。

テスト環境

ここではテスト環境をDocker Composeを使用してワンクリックでデプロイします。

使用するファイルは以下の通りです:
Pasted image 20240112205132.png

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

上記のコードを以下の画像に示されているファイルに手動で配置してください。
Pasted image 20240112205927.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0