rocketMQ笔记(1)-环境搭建

291 阅读2分钟

一. 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";
    }
}

结果

image.png

image.png

三. 主要参考文献

  1. segmentfault.com/a/119000003…