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
1 依赖包
org.apache.rocketmq rocketmq-spring-boot-starter 2.0.3
2配置
rocketmq: name-server: 127.0.0.1:9876
producer: group: my-group
rocketmq. producer.send-nd-message-timeout=300000
rocketmq. producer.compess-message-body-threshold=4096
rocketmq.producer.max-message-size=4194304
rocketmq.producer.retry-times-when-send-async-failed=2
sms-uhen-send- async-failed-e
rocketmq.producer.retry-next.server=true
rocketmq.producer.retry-times-when-send-failed=2
编写个生产者
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(“发送成功…”);
}
}
实体类
public class OrderPaidEvent implements Serializable {
private String orderId;
private int paidMoney;
public OrderPaidEvent() {
}
public OrderPaidEvent(String orderId, int paidMoney) {
this.orderId = orderId;
this.paidMoney = paidMoney;
}
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public int getPaidMoney() {
return paidMoney;
}
public void setPaidMoney(int paidMoney) {
this.paidMoney = paidMoney;
}
}
编写个消费者
@Service
@RocketMQMessageListener(topic = “test-topic-2”, consumerGroup = “my-consumer_test-topic-2”)
public class OrderPaidEventConsumer implements RocketMQListener {
@Override
public void onMessage(OrderPaidEvent message) {
System.out.print("------- OrderPaidEventConsumer received:"+ JSON.toJSONString(message));
}
}