Browse Source

优化

feature-1.1
wuxicheng 3 years ago
parent
commit
fa8f52ed30
  1. 15
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/constant/RocketMqRepeatConstant.java
  2. 33
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/domain/img/ImgMqLocalRecordMessage.java
  3. 25
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/handle/EnhanceMessageHandler.java
  4. 32
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/template/RocketMQEnhanceTemplate.java
  5. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ImgMqMessageRecordServiceImpl.java
  6. 4
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/OrderMqMessageRecordServiceImpl.java
  7. 1
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java
  8. 4
      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,19 +20,4 @@ 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-";
} }

33
bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/domain/img/ImgMqLocalRecordMessage.java

@ -1,33 +0,0 @@
package com.bnyer.common.rocketmq.domain.img;
import com.bnyer.common.core.enums.EnumMessageStatus;
import com.bnyer.common.rocketmq.domain.BaseMessage;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @author :WXC
* @Date :2023/05/18
* @description :图片服务本地消息表记录
*/
@Getter
@Setter
@NoArgsConstructor
public class ImgMqLocalRecordMessage extends BaseMessage {
/**
* 主键id
*/
private Long id;
/**
* 消息状态
*/
private EnumMessageStatus status;
/**
* 消息内容
*/
private String content;
}

25
bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/handle/EnhanceMessageHandler.java

@ -214,29 +214,14 @@ public abstract class EnhanceMessageHandler<T extends BaseMessage> {
return message.getMessageKey(); return message.getMessageKey();
} }
/**
* 构建返回队列通知消息
* @param message
* @param status
* @return
*/
protected MqRecordMessage buildReturnMessage(MqRecordMessage message,EnumMessageStatus status){
MqRecordMessage mqRecordMessage = new MqRecordMessage();
mqRecordMessage.setMessageKey(IdUtil.randomUUID());
mqRecordMessage.setSource(applicationName);
mqRecordMessage.setTopic(message.getReturnTopic());
mqRecordMessage.setConsumerGroupName(message.getReturnTopic());
mqRecordMessage.setStatus(status);
mqRecordMessage.setId(message.getId());
return mqRecordMessage;
}
/** /**
* 返回成功通知 * 返回成功通知
* @param message * @param message
*/ */
protected void sendReturnSuccessMessage(MqRecordMessage message){ protected void sendReturnSuccessMessage(MqRecordMessage message){
MqRecordMessage returnMessage = buildReturnMessage(message, EnumMessageStatus.SUCCESS); MqRecordMessage returnMessage = new MqRecordMessage();
returnMessage.setStatus(EnumMessageStatus.SUCCESS);
returnMessage.setId(message.getId());
rocketMQEnhanceTemplate.sendAsyncMsg(message.getReturnTopic(),null,returnMessage); rocketMQEnhanceTemplate.sendAsyncMsg(message.getReturnTopic(),null,returnMessage);
} }
@ -245,7 +230,9 @@ public abstract class EnhanceMessageHandler<T extends BaseMessage> {
* @param message * @param message
*/ */
protected void sendReturnFailsMessage(MqRecordMessage message){ protected void sendReturnFailsMessage(MqRecordMessage message){
MqRecordMessage returnMessage = buildReturnMessage(message, EnumMessageStatus.FAILS); MqRecordMessage returnMessage = new MqRecordMessage();
returnMessage.setStatus(EnumMessageStatus.FAILS);
returnMessage.setId(message.getId());
rocketMQEnhanceTemplate.sendAsyncMsg(message.getReturnTopic(),null,returnMessage); rocketMQEnhanceTemplate.sendAsyncMsg(message.getReturnTopic(),null,returnMessage);
} }

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

@ -1,5 +1,6 @@
package com.bnyer.common.rocketmq.template; package com.bnyer.common.rocketmq.template;
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.rocketmq.config.RocketEnhanceProperties; import com.bnyer.common.rocketmq.config.RocketEnhanceProperties;
@ -11,9 +12,11 @@ import org.apache.rocketmq.client.producer.*;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.apache.rocketmq.spring.support.RocketMQHeaders; import org.apache.rocketmq.spring.support.RocketMQHeaders;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.messaging.Message; import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder; import org.springframework.messaging.support.MessageBuilder;
import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**
@ -30,6 +33,16 @@ public class RocketMQEnhanceTemplate {
@Resource @Resource
private RocketEnhanceProperties rocketEnhanceProperties; private RocketEnhanceProperties rocketEnhanceProperties;
@Resource
private Environment env;
private String applicationName;
@PostConstruct
public void init(){
this.applicationName = env.getProperty("spring.application.name");
}
public RocketMQTemplate getTemplate() { public RocketMQTemplate getTemplate() {
return template; return template;
} }
@ -67,6 +80,7 @@ public class RocketMQEnhanceTemplate {
public <T extends BaseMessage> SendResult send(String topic, String tag, T message) { public <T extends BaseMessage> SendResult send(String topic, String tag, T message) {
// 设置业务键,此处根据公共的参数进行处理 // 设置业务键,此处根据公共的参数进行处理
// 更多的其它基础业务处理... // 更多的其它基础业务处理...
buildBaseMessage(topic,tag,message);
Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.KEYS, message.getMessageKey()).build(); Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.KEYS, message.getMessageKey()).build();
SendResult sendResult; SendResult sendResult;
try { try {
@ -89,6 +103,7 @@ public class RocketMQEnhanceTemplate {
* @param <T> * @param <T>
*/ */
public <T extends BaseMessage> SendResult send(String topic, String tag, T message, int delayLevel) { public <T extends BaseMessage> SendResult send(String topic, String tag, T message, int delayLevel) {
buildBaseMessage(topic,tag,message);
Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.KEYS, message.getMessageKey()).build(); Message<T> sendMessage = MessageBuilder.withPayload(message).setHeader(RocketMQHeaders.KEYS, message.getMessageKey()).build();
SendResult sendResult; SendResult sendResult;
try { try {
@ -105,6 +120,7 @@ public class RocketMQEnhanceTemplate {
* 适合对响应时间敏感的业务场景 * 适合对响应时间敏感的业务场景
*/ */
public <T extends BaseMessage> void sendAsyncMsg(String topic, String tag, T message) { public <T extends BaseMessage> void sendAsyncMsg(String topic, String tag, T message) {
buildBaseMessage(topic,tag,message);
template.asyncSend(buildDestination(topic,tag), MessageBuilder.withPayload(message).build(), new SendCallback() { template.asyncSend(buildDestination(topic,tag), MessageBuilder.withPayload(message).build(), new SendCallback() {
@Override @Override
public void onSuccess(SendResult sendResult) { public void onSuccess(SendResult sendResult) {
@ -124,6 +140,7 @@ public class RocketMQEnhanceTemplate {
* 适合对响应时间敏感的业务场景 * 适合对响应时间敏感的业务场景
*/ */
public <T extends BaseMessage> void sendAsyncMsg(String topic, String tag, T message, int delayLevel) { public <T extends BaseMessage> void sendAsyncMsg(String topic, String tag, T message, int delayLevel) {
buildBaseMessage(topic,tag,message);
template.asyncSend(buildDestination(topic,tag), MessageBuilder.withPayload(message).build(), new SendCallback() { template.asyncSend(buildDestination(topic,tag), MessageBuilder.withPayload(message).build(), new SendCallback() {
@Override @Override
public void onSuccess(SendResult sendResult) { public void onSuccess(SendResult sendResult) {
@ -153,5 +170,20 @@ public class RocketMQEnhanceTemplate {
} }
/**
* 构建消息体基本信息
* @param topic
* @param tag
* @param message
* @param <T>
*/
private<T extends BaseMessage> void buildBaseMessage(String topic,String tag,T message){
String buildTopic = reBuildTopic(topic);
message.setSource(applicationName);
message.setMessageKey(applicationName + "-" + IdUtil.getSnowflakeNextIdStr());
message.setTopic(buildTopic);
message.setTag(tag);
message.setConsumerGroupName(buildTopic);
}
} }

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

@ -5,9 +5,7 @@ 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.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;
@ -71,7 +69,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(RocketMqRepeatConstant.MESSAGE_ID_PREFIX_IMG + IdUtil.getSnowflakeNextIdStr()); mqRecordMessage.setMessageKey(applicationName + "-"+ IdUtil.getSnowflakeNextIdStr());
mqRecordMessage.setContent(JSON.toJSONString(message)); mqRecordMessage.setContent(JSON.toJSONString(message));
mqRecordMessage.setSource(applicationName); mqRecordMessage.setSource(applicationName);
mqRecordMessage.setReturnTopic(buildReturnTopic); mqRecordMessage.setReturnTopic(buildReturnTopic);

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

@ -5,9 +5,7 @@ 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.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;
@ -70,7 +68,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(RocketMqRepeatConstant.MESSAGE_ID_PREFIX_ORDER + IdUtil.getSnowflakeNextIdStr()); mqRecordMessage.setMessageKey(applicationName + "-" + IdUtil.getSnowflakeNextIdStr());
mqRecordMessage.setContent(JSON.toJSONString(message)); mqRecordMessage.setContent(JSON.toJSONString(message));
mqRecordMessage.setSource(applicationName); mqRecordMessage.setSource(applicationName);
mqRecordMessage.setReturnTopic(buildReturnTopic); mqRecordMessage.setReturnTopic(buildReturnTopic);

1
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java

@ -16,6 +16,7 @@ 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.core.vo.UserInfoVo; import com.bnyer.common.core.vo.UserInfoVo;
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.RocketMqTag; import com.bnyer.common.rocketmq.constant.RocketMqTag;
import com.bnyer.common.rocketmq.constant.RocketMqTopic; import com.bnyer.common.rocketmq.constant.RocketMqTopic;
import com.bnyer.common.rocketmq.domain.img.AddUserVipRecordMessage; import com.bnyer.common.rocketmq.domain.img.AddUserVipRecordMessage;

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

@ -5,9 +5,7 @@ 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.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;
@ -71,7 +69,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(RocketMqRepeatConstant.MESSAGE_ID_PREFIX_PAY + IdUtil.getSnowflakeNextIdStr()); mqRecordMessage.setMessageKey(applicationName + "-" + IdUtil.getSnowflakeNextIdStr());
mqRecordMessage.setContent(JSON.toJSONString(message)); mqRecordMessage.setContent(JSON.toJSONString(message));
mqRecordMessage.setSource(applicationName); mqRecordMessage.setSource(applicationName);
mqRecordMessage.setReturnTopic(buildReturnTopic); mqRecordMessage.setReturnTopic(buildReturnTopic);

Loading…
Cancel
Save