Browse Source

消息id调整,避免出现重复

feature-1.1
wuxicheng 3 years ago
parent
commit
351fbf497f
  1. 15
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/constant/RocketMqRepeatConstant.java
  2. 2
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/template/RocketMQEnhanceTemplate.java
  3. 6
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ImgMqMessageRecordServiceImpl.java
  4. 6
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/OrderMqMessageRecordServiceImpl.java
  5. 7
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayMqMessageRecordServiceImpl.java

15
bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/constant/RocketMqRepeatConstant.java

@ -20,4 +20,19 @@ public class RocketMqRepeatConstant {
*/ */
public final static String REPEAT_REDIS_KEY_PREFIX = "RepeatMessage:"; public final static String REPEAT_REDIS_KEY_PREFIX = "RepeatMessage:";
/**
* 订单服务消息id前缀
*/
public final static String MESSAGE_ID_PREFIX_ORDER = "order-";
/**
* 支付服务消息id前缀
*/
public final static String MESSAGE_ID_PREFIX_PAY = "pay-";
/**
* 图片服务消息id前缀
*/
public final static String MESSAGE_ID_PREFIX_IMG = "img-";
} }

2
bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/template/RocketMQEnhanceTemplate.java

@ -49,8 +49,10 @@ public class RocketMQEnhanceTemplate {
*/ */
public String reBuildTopic(String topic) { public String reBuildTopic(String topic) {
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.isNoneBlank(rocketEnhanceProperties.getEnvironment())){ if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.isNoneBlank(rocketEnhanceProperties.getEnvironment())){
if (!topic.endsWith(rocketEnhanceProperties.getEnvironment())){
return topic +"-" + rocketEnhanceProperties.getEnvironment(); return topic +"-" + rocketEnhanceProperties.getEnvironment();
} }
}
return topic; return topic;
} }

6
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ImgMqMessageRecordServiceImpl.java

@ -1,11 +1,13 @@
package com.bnyer.img.service.impl; package com.bnyer.img.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.domain.ImgMqMessageRecord; import com.bnyer.common.core.domain.ImgMqMessageRecord;
import com.bnyer.common.core.enums.EnumMessageStatus; import com.bnyer.common.core.enums.EnumMessageStatus;
import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.rocketmq.constant.RocketMqConstant; import com.bnyer.common.rocketmq.constant.RocketMqConstant;
import com.bnyer.common.rocketmq.constant.RocketMqRepeatConstant;
import com.bnyer.common.rocketmq.constant.RocketMqTopic; import com.bnyer.common.rocketmq.constant.RocketMqTopic;
import com.bnyer.common.rocketmq.domain.MqRecordMessage; import com.bnyer.common.rocketmq.domain.MqRecordMessage;
import com.bnyer.common.rocketmq.template.RocketMQEnhanceTemplate; import com.bnyer.common.rocketmq.template.RocketMQEnhanceTemplate;
@ -68,7 +70,7 @@ public class ImgMqMessageRecordServiceImpl implements ImgMqMessageRecordService
mqRecordMessage.setTopic(buildTopic); mqRecordMessage.setTopic(buildTopic);
mqRecordMessage.setTag(tag); mqRecordMessage.setTag(tag);
mqRecordMessage.setConsumerGroupName(buildTopic); mqRecordMessage.setConsumerGroupName(buildTopic);
mqRecordMessage.setMessageKey(IdUtils.randomUUID()); mqRecordMessage.setMessageKey(RocketMqRepeatConstant.MESSAGE_ID_PREFIX_IMG + IdUtil.getSnowflakeNextIdStr());
mqRecordMessage.setContent(JSON.toJSONString(message)); mqRecordMessage.setContent(JSON.toJSONString(message));
mqRecordMessage.setSource(applicationName); mqRecordMessage.setSource(applicationName);
mqRecordMessage.setReturnTopic(RocketMqTopic.IMG_RETURN_MSG_TOPIC); mqRecordMessage.setReturnTopic(RocketMqTopic.IMG_RETURN_MSG_TOPIC);
@ -175,7 +177,7 @@ public class ImgMqMessageRecordServiceImpl implements ImgMqMessageRecordService
imgMqMessageRecord.setTopic(message.getTopic()); imgMqMessageRecord.setTopic(message.getTopic());
imgMqMessageRecord.setTag(message.getTag()); imgMqMessageRecord.setTag(message.getTag());
imgMqMessageRecord.setCreateTime(new Date()); imgMqMessageRecord.setCreateTime(new Date());
imgMqMessageRecord.setMessageKey(IdUtils.randomUUID()); imgMqMessageRecord.setMessageKey(message.getMessageKey());
imgMqMessageRecord.setContent(JSON.toJSONString(message)); imgMqMessageRecord.setContent(JSON.toJSONString(message));
imgMqMessageRecordMapper.insert(imgMqMessageRecord); imgMqMessageRecordMapper.insert(imgMqMessageRecord);
return imgMqMessageRecord; return imgMqMessageRecord;

6
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/OrderMqMessageRecordServiceImpl.java

@ -1,11 +1,13 @@
package com.bnyer.order.service.impl; package com.bnyer.order.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.domain.OrderMqMessageRecord; import com.bnyer.common.core.domain.OrderMqMessageRecord;
import com.bnyer.common.core.enums.EnumMessageStatus; import com.bnyer.common.core.enums.EnumMessageStatus;
import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.rocketmq.constant.RocketMqConstant; import com.bnyer.common.rocketmq.constant.RocketMqConstant;
import com.bnyer.common.rocketmq.constant.RocketMqRepeatConstant;
import com.bnyer.common.rocketmq.constant.RocketMqTopic; import com.bnyer.common.rocketmq.constant.RocketMqTopic;
import com.bnyer.common.rocketmq.domain.MqRecordMessage; import com.bnyer.common.rocketmq.domain.MqRecordMessage;
import com.bnyer.common.rocketmq.template.RocketMQEnhanceTemplate; import com.bnyer.common.rocketmq.template.RocketMQEnhanceTemplate;
@ -67,7 +69,7 @@ public class OrderMqMessageRecordServiceImpl implements OrderMqMessageRecordServ
mqRecordMessage.setTopic(buildTopic); mqRecordMessage.setTopic(buildTopic);
mqRecordMessage.setTag(tag); mqRecordMessage.setTag(tag);
mqRecordMessage.setConsumerGroupName(buildTopic); mqRecordMessage.setConsumerGroupName(buildTopic);
mqRecordMessage.setMessageKey(IdUtils.randomUUID()); mqRecordMessage.setMessageKey(RocketMqRepeatConstant.MESSAGE_ID_PREFIX_ORDER + IdUtil.getSnowflakeNextIdStr());
mqRecordMessage.setContent(JSON.toJSONString(message)); mqRecordMessage.setContent(JSON.toJSONString(message));
mqRecordMessage.setSource(applicationName); mqRecordMessage.setSource(applicationName);
mqRecordMessage.setReturnTopic(RocketMqTopic.ORDER_RETURN_MSG_TOPIC); mqRecordMessage.setReturnTopic(RocketMqTopic.ORDER_RETURN_MSG_TOPIC);
@ -174,7 +176,7 @@ public class OrderMqMessageRecordServiceImpl implements OrderMqMessageRecordServ
orderMqMessageRecord.setTopic(message.getTopic()); orderMqMessageRecord.setTopic(message.getTopic());
orderMqMessageRecord.setTag(message.getTag()); orderMqMessageRecord.setTag(message.getTag());
orderMqMessageRecord.setCreateTime(new Date()); orderMqMessageRecord.setCreateTime(new Date());
orderMqMessageRecord.setMessageKey(IdUtils.randomUUID()); orderMqMessageRecord.setMessageKey(message.getMessageKey());
orderMqMessageRecord.setContent(JSON.toJSONString(message)); orderMqMessageRecord.setContent(JSON.toJSONString(message));
orderMqMessageRecordMapper.insert(orderMqMessageRecord); orderMqMessageRecordMapper.insert(orderMqMessageRecord);
return orderMqMessageRecord; return orderMqMessageRecord;

7
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayMqMessageRecordServiceImpl.java

@ -1,12 +1,13 @@
package com.bnyer.pay.service.impl; package com.bnyer.pay.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.domain.PayMqMessageRecord; import com.bnyer.common.core.domain.PayMqMessageRecord;
import com.bnyer.common.core.enums.EnumMessageStatus; import com.bnyer.common.core.enums.EnumMessageStatus;
import com.bnyer.common.core.utils.bean.EntityConvertUtil;
import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.rocketmq.constant.RocketMqConstant; import com.bnyer.common.rocketmq.constant.RocketMqConstant;
import com.bnyer.common.rocketmq.constant.RocketMqRepeatConstant;
import com.bnyer.common.rocketmq.constant.RocketMqTopic; import com.bnyer.common.rocketmq.constant.RocketMqTopic;
import com.bnyer.common.rocketmq.domain.MqRecordMessage; import com.bnyer.common.rocketmq.domain.MqRecordMessage;
import com.bnyer.common.rocketmq.template.RocketMQEnhanceTemplate; import com.bnyer.common.rocketmq.template.RocketMQEnhanceTemplate;
@ -69,7 +70,7 @@ public class PayMqMessageRecordServiceImpl implements PayMqMessageRecordService
mqRecordMessage.setTopic(buildTopic); mqRecordMessage.setTopic(buildTopic);
mqRecordMessage.setTag(tag); mqRecordMessage.setTag(tag);
mqRecordMessage.setConsumerGroupName(buildTopic); mqRecordMessage.setConsumerGroupName(buildTopic);
mqRecordMessage.setMessageKey(IdUtils.randomUUID()); mqRecordMessage.setMessageKey(RocketMqRepeatConstant.MESSAGE_ID_PREFIX_PAY + IdUtil.getSnowflakeNextIdStr());
mqRecordMessage.setContent(JSON.toJSONString(message)); mqRecordMessage.setContent(JSON.toJSONString(message));
mqRecordMessage.setSource(applicationName); mqRecordMessage.setSource(applicationName);
mqRecordMessage.setReturnTopic(RocketMqTopic.PAY_RETURN_MSG_TOPIC); mqRecordMessage.setReturnTopic(RocketMqTopic.PAY_RETURN_MSG_TOPIC);
@ -176,7 +177,7 @@ public class PayMqMessageRecordServiceImpl implements PayMqMessageRecordService
payMqMessageRecord.setTopic(message.getTopic()); payMqMessageRecord.setTopic(message.getTopic());
payMqMessageRecord.setTag(message.getTag()); payMqMessageRecord.setTag(message.getTag());
payMqMessageRecord.setCreateTime(new Date()); payMqMessageRecord.setCreateTime(new Date());
payMqMessageRecord.setMessageKey(IdUtils.randomUUID()); payMqMessageRecord.setMessageKey(message.getMessageKey());
payMqMessageRecord.setContent(JSON.toJSONString(message)); payMqMessageRecord.setContent(JSON.toJSONString(message));
payMqMessageRecordMapper.insert(payMqMessageRecord); payMqMessageRecordMapper.insert(payMqMessageRecord);
return payMqMessageRecord; return payMqMessageRecord;

Loading…
Cancel
Save