RocketMq整合springboot,demo示例

一、window安装rocketmq:

1.1地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/

1.2选择‘Binary’进行下载

1.3解压已下载工程

2. 配置

2.1 系统环境变量配置

        变量名:ROCKETMQ_HOME

        变量值:MQ解压路径\MQ文件夹名

2.2重启服务器

3. 启动

3.1 启动NAMESERVER

        Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动NAMESERVER。成功后会弹出提示框,此框勿关闭。

3.2 启动BROKER

        Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876   -c ../conf/broker.conf  autoCreateTopicEnable=true’,启动BROKER。成功后会弹出提示框,此框勿关闭。

扫描二维码关注公众号,回复: 13594024 查看本文章


二、代码示例:

2.1 pom依赖:

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

2.2代码:

   创建topic

import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;

public class RocketMQMgr {
    public static void main(String[] args) {
        DefaultMQProducer producer=new DefaultMQProducer("jason");

        producer.setNamesrvAddr("127.0.0.1:9876");

        try {
            producer.start();

            /*第一个参数 请保持与conf/broker.conf中brokerName一致
             *第二个参数 为topic名称
             *第三个参数 并发数
             */
            producer.createTopic("broker-a","test-topic",4);

            System.out.println("test-topic  创建成功!");

            producer.shutdown();
        } catch (MQClientException e) {
            e.printStackTrace();
        }

    }
}

2.3 springboot代码:

application.properties增加:

rocketmq:
  name-server: localhost:9876
  producer:
    group: ${spring.application.name}
    send-message-timeout: 30000
    access-key: rocketmq2
    secret-key: 12345678
    enable-msg-trace: true

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BackendApplicationBootstrap {

    public static void main(String[] args) {
        SpringApplication.run(BackendApplicationBootstrap.class);
    }
}




import com.sep.tech.inf.service.DubboTestService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @DubboReference(version = "1.0.0",providedBy = "dubbo-web")
    private DubboTestService dubboTestService;

    @Autowired
    private RocketMQTemplate rocketMQTemplate;


    @GetMapping("dubboTest")
    public String dubboTest() {
        return dubboTestService.say("Hello world");
    }

    @GetMapping("push")
    public void push() {
        rocketMQTemplate.syncSend("test-topic", MessageBuilder.withPayload("test-topic"));
    }
}

 2.4 测试:

 日志:

猜你喜欢

转载自blog.csdn.net/jason_jiahongfei/article/details/121126790