#1688订单)生产者 rocketmq.tcp.normalProducers[0].producer = orderSdkNormalProducer rocketmq.tcp.normalProducers[0].topicId = topic_sdk_order_event #商品的生产者 rocketmq.tcp.normalProducers[1].producer = goodsSdkNormalProducer rocketmq.tcp.normalProducers[1].topicId = topic_sdk_goods_event #普通 rocketmq.tcp.normalProducers[2].producer = sdkNormalProducer rocketmq.tcp.normalProducers[2].topicId = topic_sdk_order_event #事务 rocketmq.tcp.transactionProducers[0].producer = sdkTransactionNormalProducer rocketmq.tcp.transactionProducers[0].topicId = topic_sdk_event rocketmq.tcp.transactionProducers[0].checker = transactionCheck #延迟 rocketmq.tcp.delayProducers[0].producer = sdkDelayProducer rocketmq.tcp.delayProducers[0].topicId = topic_sdk_event #顺序 rocketmq.tcp.orderProducers[0].producer = sdkOrderproducer rocketmq.tcp.orderProducers[0].topicId = topic_sdk_event
#1688订单部分发货(买家视角)消费者 rocketmq.tcp.consumers[0].listener = partialdeliverySdkNormalListener rocketmq.tcp.consumers[0].topicId = topic_sdk_order_event rocketmq.tcp.consumers[0].groupId = GID_SDK_ACCESS_ORDER rocketmq.tcp.consumers[0].tag = ORDER_BUYER_VIEW_PART_PART_SENDGOODS #事务消费者 rocketmq.tcp.consumers[1].listener = sdkTransactionListener rocketmq.tcp.consumers[1].topicId = topic_sdk_event rocketmq.tcp.consumers[1].tag = orderTrans rocketmq.tcp.consumers[1].groupId = GID_SDK_TRANS #延迟消费者 rocketmq.tcp.consumers[2].listener = sdkDelayListener rocketmq.tcp.consumers[2].topicId = topic_sdk_event rocketmq.tcp.consumers[2].groupId = GID_SDK_ACCESS #有顺序的 rocketmq.tcp.consumers[3].listener = sdkOrderListener rocketmq.tcp.consumers[3].topicId = topic_sdk_event rocketmq.tcp.consumers[3].groupId = GID_SDK_ACCESS #商品删除的消费者 rocketmq.tcp.consumers[4].listener = goodsDeleteSdkNormalListener rocketmq.tcp.consumers[4].topicId = topic_sdk_goods_event rocketmq.tcp.consumers[4].groupId = GID_SDK_ACCESS_GOODS rocketmq.tcp.consumers[4].tag = PRODUCT_RELATION_VIEW_PRODUCT_DELETE #物流的消息 rocketmq.tcp.consumers[5].listener = orderLogisticsSdkNormalListener rocketmq.tcp.consumers[5].topicId = topic_sdk_order_event rocketmq.tcp.consumers[5].groupId = GID_SDK_ACCESS_ORDER rocketmq.tcp.consumers[5].tag = LOGISTICS_BUYER_VIEW_TRACE #配置信息 rocketmq.tcp.accessKey= LTAI4G2fA6sbNkFHtJVq3nfA rocketmq.tcp.secretKey= GLnLY2fSXZ3at4KivggP8oP5WUM5Qx rocketmq.tcp.nameSrvAddr=http://MQ_INST_1448792589280488_BXjRmnaq.mq-internet-access.mq-internet.aliyuncs.com:80
#发送消息 @Component @Slf4j public class RocketMqBiz { @Resource RocketMqProducer sdkNormalProducer; @Resource RocketMqTransactionProducer sdkTransactionNormalProducer; @Resource RocketMqDelayProducer sdkDelayProducer; @Resource RocketMqOrderProducer sdkOrderproducer; public void testMq() throws InterruptedException { Msg msg=new Msg(); msg.setName("normal 普通======" + System.nanoTime()); System.out.println("开始发送消息"); sdkNormalProducer.sendAsync(msg,new SendCallback(){
@Override
public void onSuccess(SendResult sendResult) {
System.out.println("成功");
}
@Override
public void onException(OnExceptionContext onExceptionContext) {
System.out.println("异常");
}
});
/**
* 事务
*/
TimeUnit.SECONDS.sleep(2);
msg.setName("事务消息======"+System.nanoTime());
sdkTransactionNormalProducer.send(msg,(msg1,args)->{
log.info("executed local transaction");
return TransactionStatus.CommitTransaction;
},null);
/**
* 延迟
*/
msg.setName("延迟消息======"+System.nanoTime());
sdkDelayProducer.sendAsync(msg, 5, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println("延迟成功");
}
@Override
public void onException(OnExceptionContext onExceptionContext) {
System.out.println("延迟异常");
}
});
msg.setName("顺序消息======"+System.nanoTime());
sdkOrderproducer.send(msg,"order");
}
public void testTrans(){
OrderTrans orderTrans=new OrderTrans();
orderTrans.setId(UUID.randomUUID().toString());
orderTrans.setTime(DateUtil.now());
MsgOption msgOption=new MsgOption();
msgOption.setTag("orderTrans");
SendResult result= sdkTransactionNormalProducer.send(orderTrans,msgOption,((message, o) -> {
Boolean bln= local();
if(bln){
//成功就提交
log.info("executed local transaction,发送消息成功");
return TransactionStatus.CommitTransaction;
}else{
//如果失败就是回滚
log.info("executed local transaction,发送消息失败");
return TransactionStatus.RollbackTransaction;
}
}),null);
System.out.println("发送的结果"+result);
}
@Transactional
public Boolean local(){
Boolean bln=false;
try {
Random random=new Random();
int i =random.nextInt(10) ;
log.info("奇数"+i);
if(i%2==0){
log.info("偶数"+i);
bln=true;
}
}catch (Exception exception){
log.error("出问题了");
bln=false;
}
return bln;
}
}
#接收 @Slf4j @RocketMqListener public class OrderCommonEventListener extends AbstractMessageListener {
@Autowired
private FinancialDivideBiz financialDivideBiz;
@Autowired
private FinancialDivideRefundBiz financialDivideRefundBiz;
@Override
public ConsumerAction message(MessageBody<Object> messageBody) {
if (MsgOptionEnum.ORDER_EVENT_AFTER_SALES_APPLY.equals(messageBody.getOriginMessage().getTag())) {
AfterSalesMessage body = BeanUtils.toBean(messageBody.getBody(), AfterSalesMessage.class);
log.debug("接收到售后申请通知:" + JsonUtils.toJson(messageBody));
DivideOrderRefundReq req = new DivideOrderRefundReq();
req.setOrderId(String.valueOf(body.getSubId()));
req.setRefundNo(body.getAfterSalesOrderSn());
req.setRefundAmount(body.getReturnAmount());
req.setSkuId(body.getSkuId());
// 售后申请
financialDivideRefundBiz.apply(req);
} else if (MsgOptionEnum.ORDER_EVENT_AFTER_SALES_CLOSE.equals(messageBody.getOriginMessage().getTag())) {
AfterSalesMessage body = BeanUtils.toBean(messageBody.getBody(), AfterSalesMessage.class);
log.debug("接收到售后取消通知:" + JsonUtils.toJson(messageBody));
// 售后申请
financialDivideRefundBiz.cancle(body);
} else if (MsgOptionEnum.ORDER_EVENT_NOTIFY_SETTLEMENT.equals(messageBody.getOriginMessage().getTag())) {
OrderSubMessage body = BeanUtils.toBean(messageBody.getBody(), OrderSubMessage.class);
log.debug("接收到普通订单完结通知:" + JsonUtils.toJson(messageBody));
// 结算完结
financialDivideBiz.complete(String.valueOf(body.getId()));
}
return ConsumerAction.SUCCESS;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。