Rocketmq基本使用

Springboot+rocketmq整合

1.加入rocketMq依赖

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>2.0.3</version>
</dependency>

2.实体类

package com.fh.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.Document;

@Data
@AllArgsConstructor
public class User {
    private Integer id;

    private String username;

    private String password;

    private Integer age;

    private String emial;

    private String phone;

}

3.Controller(生产者)

@Resource
private RocketMQTemplate rocketMQTemplate;
//延时消息
@RequestMapping("TestAdd")
public void TestAdd(@RequestBody  User user){
    long l = System.currentTimeMillis();        //Test消息的主题 要和消费者的主题保持一致
    SendResult test = rocketMQTemplate.syncSend("Test", MessageBuilder.withPayload(user).build(), 2000, 3);//delayLevel 延时时间18个等级 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
    long l1 = System.currentTimeMillis();
    log.info("=======上述代码执行时间为:====={}",l1-l);
    System.out.println("发送成功");
}

4.消费者

package com.fh.controller;

import com.alibaba.fastjson.JSON;
import com.fh.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RocketMQMessageListener(topic = "Test", consumerGroup = "Test2")
public class OrderPaidEventConsumer implements RocketMQListener<User> {
    @Override
    public void onMessage(User message) {

        System.out.print("------- 消息内容OrderPaidEventConsumer received:"+ JSON.toJSONString(message));
    }

}

5,配置文件

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: my-group
  autoCreateTopicEnable: true
  diskMaxUsedSpaceRatio: 95

6.rocketmq控制台

 6.1下载https://github.com/apache/rocketmq-externals到本地

  找到rocketmq-externals-master\rocketmq-console\src\main\resources\application.properties 添加如下:

rocketmq.config.namesrvAddr=192.168.25.135:9876;192.168.25.138:9876

6.2然后在rocketmq-externals-master\rocketmq-console目录下执行cmd命令如下:

mvn clean package -Dmaven.test.skip=true

6.3然后启动rocketmq-externals-mester\targer目录的jar包命令如下

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

6.4访问浏览器localhost:8080即可看到rocketmq控制台页面

 

posted @ 2021-06-02 10:48  liberalartsy  阅读(186)  评论(0)    收藏  举报