RocketMQ使用

一、安装RocketMQ

  1. 解压
unzip rocketmq-all-4.7.1-bin-release.zip
  1. 启动
nohup ./bin/mqnamesrv &
  1. 检查启动情况
netstat -an | grep 9876
  1. 启动Broker
    启动之前需要编辑配置文件,修改 JVM 内存设置,默认给的内存 4 GB,超过我们虚拟机的 JVM 了。
cd bin
vim runserver.sh

在这里插入图片描述

vim runbroker.sh

在这里插入图片描述 启动Broker

nohup ./mqbroker -n localhost:9876 &

查看日记

tail -f ~/logs/rocketmqlogs/broker.log
  1. 测试RocketMQ

消息发送

cd bin
export NAMESRV_ADDR=localhost:9876
./tools.sh org.apache.rocketmq.example.quickstart.Producer

消息接受

cd bin
export NAMESRV_ADDR=localhost:9876
./tools.sh org.apache.rocketmq.example.quickstart.Consumer
  1. 关闭RocketMQ
cd bin
./mqshutdown broker
./mqshutdown namesrv

二、安装RocketMQ控制台

  1. 解压,修改配置文件,打包(控制台是用spring boot写的)
    在这里插入图片描述
mvn clean package -Dmaven.test.skip=true

在这里插入图片描述
2. 进入 target 启动 jar

java -jar rocketmq-console-ng-1.0.0.jar

打开浏览器访问 localhost:9877,如果报错。这是因为我们的 RocketMQ 安装在 Linux 中,控制台在windows,Linux 需要开放端口才能访问,开放 10909 和9876 端口。

firewall-cmd --zone=public --add-port=10909/tcp
--permanent
firewall-cmd --zone=public --add-port=9876/tcp
--permanent
systemctl restart firewalld.service
firewall-cmd --reload

在这里插入图片描述

三、Spring Boot整合RocketMQ

provider

  1. pom.xml
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-bootstarter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.0</version>
</dependency>
  1. application.xml
rocketmq:
name-server: 192.168.248.129:9876
producer:
group: myprovider
  1. Order

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order {
    private Integer id;
    private String buyerName;
    private String buyerTel;
    private String address;
    private Date createDate;
}
  1. Controller
@Autowired
private RocketMQTemplate rocketMQTemplate;

@GetMapping("/create")
public Order create(){
    Order order = new Order(
        1,
        "张三",
        "123123",
        "软件园",
        new Date()
    );
    this.rocketMQTemplate.convertAndSend("myTopic",order);
    return order;
}

consumer

  1. pom.xml
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-bootstarter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.0</version>
</dependency>
  1. application.xml
rocketmq:
name-server: 192.168.248.129:9876
  1. Service
@Slf4j
@Service
@RocketMQMessageListener(consumerGroup = "myConsumer",topic = "myTopic")
public class SmsService implements RocketMQListener<Order> {
    @Override
    public void onMessage(Order order) {
        log.info("新订单{},发短信",order);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值