springboot整合rocketmq

rocketmq的安装

rocketMq官网:http://rocketmq.apache.org/
下载比较简单.rocketmq-3.5.8.zip,和rocketmq-externals-master扩展的,里面有控制台,比较方便也下载下来
我以前下载过,就不过多介绍,解压出来:
这是rocketmq源码,
在这里插入图片描述
这是扩展源码:
在这里插入图片描述
因为是源码都直接运行不了的,需要进行编译,因为是java语言编写的,肯定需要java环境,直接执行install.bat,然后进入target目录.rocket就是一个maven项目.
在这里插入图片描述
targe里面就可以直接执行了
在这里插入图片描述
执行文件都在bin里面:
在这里插入图片描述
分别执行这两个,一般没报错就成功了,
在这里插入图片描述
console的页面控制台基本同理:
在这里插入图片描述
在这里插入图片描述
有个window的批处理文件,直接点击很方便很人性化.然后也是一个springboot项目,看到最后的启动成功就ok了,看得到端口,12581
在这里插入图片描述
刚进去的画面很酷,可以更换语言,简体中文.很方便,都是中文很方便
在这里插入图片描述
启动注意我使用的老版本,新版本好像不用设置了:

先启动mynameserver

在启动mqbroker的时候需要指定autoCreateTopicEnable=true。例如:
 
nohup sh mqbroker -n 192.168.180.133:9876 autoCreateTopicEnable=true > ~/logs/rocketmqlogs/broker.log 2>&1 &

window系统下:
在window系统下需要在cmd中启动mqbroker才行。命令格式如下:
mqbroker.exe -n localhost:9876 autoCreateTopicEnable=true

springboot整合rocketmq

网上很多有整合rocketmq的,但是部分没有使用官方rocketmq-spring-boot-starter,因为官方start是近几年出的,使用起来很简单,我这里就做一个简单的demo好了…
rocketmq-spring-boot-starter官方文档:
https://github.com/apache/rocketmq-spring/blob/master/README_zh_CN.md
我自己整合过部分springboot,然后这整合我就放一起了,因为是简单的整合使用.所以,不要说我太菜,尽管说了我也不听,/手动狗头
首先引入依赖:
版本可以改的,当然也最好提到properties里面,这里的话就可以直接写里面.

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

测试的话,我就将topic都直接写死了,一般都会写在配置文件里面的…公司中使用需要注意的.在配置文件里面加上:

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: my-group

编写个测试类,一个是发送简单的String,一个是发送类:

import com.mr.pojo.OrderPaidEvent;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.math.BigDecimal;

/**
 * @ClassName RocketMqTest
 * @Description RocketMqTest
 * @Author stack
 * @Version 1.0
 * @since 2019/6/23 18:32
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class RocketMqTest {

    @Resource
    private RocketMQTemplate rocketMQTemplate;

    @Test
    public void testRocketMq1() {

        String name = "aaa";
        rocketMQTemplate.convertAndSend("test-topic-1", name);
        rocketMQTemplate.send("test-topic-2", MessageBuilder.withPayload(new OrderPaidEvent("aa,22",new BigDecimal("22"))).build());

        System.err.println("发送成功...");

    }
    
}

实体类:

@Data
@AllArgsConstructor
public class OrderPaidEvent implements Serializable {

    private String orderId;

    private BigDecimal paidMoney;

}

然后测试一波:

猜你喜欢

转载自blog.csdn.net/qq_38366063/article/details/93387680