官方文档说明 :
https://rocketmq.apache.org/docs/simple-example/
1:同步发送,消息可靠,不丢失,一般用来发送重要的短信,邮件等 SYNC
Message message = new Message(JmsConfig.productOrder, "", produce.getId(), JSON.toJSONString(produce).getBytes());
payProduct.getProducer().send(message);
2:异步发送, 对性能的要求,能支撑更高的并发,回调成功后触发相对应的功能,异步方式发送不会进行重试,总发送次数是1 ASYNC
3:单向发送,对可靠性要不不是很高,速度快的场景,比如日志采集,速度最快,没有返回结果,消息可能会丢失 ONEWAY
* 消息延迟发送:
适用场景:比如用户接单后30分钟没有进行操作,订单进行撤销,在用户接单的时候把订单号和状态码发送到MQ,延迟发送30分钟,然后在根据订单号去判断用户是否有下单,没有的话撤销订单,有的话不做处理
18种时间状态,支持修改,选择的话按对应选择级别就行了 比如 延迟1秒 选 1 延迟5秒选 2
package org.apache.rocketmq.store.config;
private String messageDelayLevel = "1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h";
选择级别
message.setDelayTimeLevel(2);