一. docker基本命令
1. 准备linux环境
2. 安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3. 启动docker
$ sudo systemctl start docker
4. 查看docker状态
systemctl status docker
5. 停掉docker
systemctl stop docker
6. 重启容器
docker restart 容器ID
7. 进入容器
docker exec -it 容器ID /bin/bash
8. 推出容器
exit 或者 Ctrl+P+Q
9. 查看docker中的容器
docker ps [OPTIONS] 其他参数
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
–no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
10. 移除容器
docker rm 1be364973e1d
11. 查看所有镜像
docker images
12. 移除镜像
docker rmi a061cf8c12b8
二. 安装rockerMq,(前提docker启动)
1. 查看可用镜像
docker search rocketmq
2. 拉取镜像
docker pull rocketmqinc/rocketmq
3. 运行rocketmq-console镜像
docker run -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=127.0.0.1:9876 -Drocketmq.config.isVIPChannel=false" -p 9993:8080 -t styletang/rocketmq-console-ng
访问地址:ip:9993
4. 运行rocketmq-nameserver
docker run -d -p 9876:9876 -v /www/mq/data/namesrv/logs:/root/logs -v /www/mq/data/namesrv/store:/root/store --name rmqnamesrv -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms1024m -Xmx1024m" rocketmqinc/rocketmq sh mqnamesrv
5. 进入nameserver的docker
docker exec -it 40e8ed3de5bd /bin/sh
6. 修改配置文件
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
#换成网络IP
namesrvAddr = 127.0.0.1:9876
#换成网络IP
brokerIP1 = 127.0.0.1
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
7. 运行rocketmq-broker
docker run -d -p 10911:10911 -p 10909:10909 -v /www/mq/data/broker/logs:/root/logs -v /www/mq/rocketmq/data/broker/store:/root/store -v /www/mq/conf/broker.conf:/opt/rocketmq/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms1024m -Xmx1024m" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq/conf/broker.conf
8. 写段代码验证一下
pom.xml
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
consumer
@Component
@RocketMQMessageListener(
topic = "TopicTest",
consumerGroup = "demo-consumer-fanout",
messageModel = MessageModel.BROADCASTING
)
public class MessageReceive implements RocketMQListener<String> {
@Override
public void onMessage(String s) {
System.out.println("fanout:" + s);
}
}
producer
@RestController
@RequestMapping("rocket")
public class SendMessageController {
@Autowired
private RocketMQTemplate rocketMQTemplate;
@GetMapping
public String sendSimpleMessage() {
rocketMQTemplate.convertAndSend("TopicTest","这是一条测试信息");
return "SUCCESS";
}
}
结果