1 拉取镜像
docker pull foxiswho/rocketmq:server-4.3.2
docker pull foxiswho/rocketmq:broker-4.3.2
docker pull styletang/rocketmq-console-ng:1.0.0
2 NameServer
docker run -p 9876:9876 --name rmqserver \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-v /usr/local/rocketmq/rmqserver/logs:/opt/logs \
-v /usr/local/rocketmq/rmqserver/store:/opt/store \
-d foxiswho/rocketmq:server-4.3.2
3 Broker
3.1 创建配置文件
#创建配置文件
mkdir -p /usr/local/rocketmq/rmqbroker/conf
vi /usr/local/rocketmq/rmqbroker/conf/broker.conf
brokerIP1=192.168.38.50
namesrvAddr=192.168.38.50:9876
brokerName=rosh_broker
3.2 启动
# 10911 生产者、消费者通信端口 。10909 主从通信端口。
docker run -p 10911:10911 -p 10909:10909 --name rmqbroker \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /usr/local/rocketmq/rmqbroker/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /usr/local/rocketmq/rmqbroker/logs:/opt/logs \
-v /usr/local/rocketmq/rmqbroker/store:/opt/store \
-d foxiswho/rocketmq:broker-4.3.2
3.3 安装光控台
docker run --name rocketmq-console \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.38.50:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8082:8080 -t -d styletang/rocketmq-console-ng:1.0.0
3.4 查看
3.5 测试
#进入控制台
http://192.168.38.50:8082
#测试发送消息
docker exec -it rmqbroker /bin/bash
#设置环境
export NAMESRV_ADDR=192.168.38.50:9876
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
#消费
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
3.6 java客户端测试
3.6.1 pom
<dependencies>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.3.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
3.6.2 代码
public class RocketClient {
public static void main(String[] args) throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("test-group");
producer.setNamesrvAddr("192.168.38.50:9876");
producer.start();
for (int i = 0; i < 100; i++) {
Message msg = new Message("TopicTest11",
"TagA", ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
SendResult sendResult = producer.send(msg);
System.out.printf("%s%n", sendResult);
}
producer.shutdown();
}
}