parent
a22061ce9b
commit
e4e226583e
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
import com.fasterxml.jackson.databind.module.SimpleModule; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import javax.annotation.Resource; |
||||
import javax.servlet.ServletContextEvent; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import org.springframework.boot.web.servlet.MultipartConfigFactory; |
||||
import org.springframework.context.annotation.Bean; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect; |
||||
import com.fasterxml.jackson.annotation.PropertyAccessor; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import com.alibaba.csp.sentinel.adapter.servlet.CommonFilter; |
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||
import org.springframework.context.annotation.PropertySource; |
@ -1,4 +1,4 @@ |
||||
package com.cweb.config; |
||||
package com.web.config; |
||||
|
||||
public class SysConst { |
||||
|
@ -1,4 +1,4 @@ |
||||
package com.cweb.controller; |
||||
package com.web.controller; |
||||
|
||||
import com.alibaba.csp.sentinel.Entry; |
||||
import com.alibaba.csp.sentinel.SphU; |
@ -0,0 +1 @@ |
||||
package com.web.controller;
import com.hai.common.utils.*;
import com.hai.entity.HighOrder;
import com.hai.model.ResponseData;
import com.hai.order.service.OrderService;
import com.hai.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @Auther: 胡锐
* @Description:
* @Date: 2021/3/26 23:08
*/
@Controller
@RequestMapping(value = "/test")
@Api(value = "订单接口")
public class TestController {
private static Logger log = LoggerFactory.getLogger(TestController.class);
@Autowired
private RocketMQTemplate rocketMQTemplate;
@Resource
private OrderService orderService;
@Resource
private RedisUtil redisUtil;
@Autowired
private RedisTemplate redisTemplate;
@RequestMapping(value = "/rocketMq", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "")
public ResponseData rocketMq(@RequestParam(name = "topicGroup", required = true) String topicGroup,
@RequestParam(name = "body", required = true) String body) {
try {
long startTime = System.currentTimeMillis();
String couponKey = "123";
List<HighOrder> list = new ArrayList<>();
for (int i = 0; i <= 1000;i++) {
orderService.getDetailByOrderNo("HF2022080918014365701");
/* list.add(orderService.getDetailByOrderNo("HF2022080918014365701"));*/
/* updateUserWithRedisLock("coupon_" + couponKey, i+"");
new Thread(() -> {*/
/* redisTemplate.opsForValue().setIfAbsent("coupon_" + couponKey, i);
System.out.println("加入数据" + i);*/
// redisTemplate.delete("coupon" + couponKey);
// System.out.println("释放数据" + index);
/*
});*/
}
System.out.println(System.currentTimeMillis() - startTime);
return ResponseMsgUtil.success(list);
} catch (Exception e) {
log.error("HighUserCardController --> rocketMq() error!", e);
return ResponseMsgUtil.exception(e);
}
}
public void updateUserWithRedisLock(String couponKey, String value) throws InterruptedException {
// 占分布式锁,去redis占坑
// 1. 分布式锁占坑
Boolean lock = redisTemplate.opsForValue().setIfAbsent("coupon" + couponKey, value);
if(lock) {
//加锁成功...
// todo business
System.out.println("加锁成功: " + value);
redisTemplate.delete("coupon" + couponKey); //删除key,释放锁
} else {
System.out.println("加锁失败");
/* Thread.sleep(100); // 加锁失败,重试
updateUserWithRedisLock("sysUser");*/
}
}
}
|
@ -1,6 +1,5 @@ |
||||
package com.cweb.msg; |
||||
package com.web.rocketmq.consumer; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.hai.common.utils.DateUtil; |
||||
import com.hai.entity.HighOrder; |
||||
import lombok.extern.slf4j.Slf4j; |
@ -1,35 +1,29 @@ |
||||
package com.cweb.msg; |
||||
package com.web.rocketmq.consumer; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.hai.common.exception.ErrorCode; |
||||
import com.hai.common.exception.ErrorHelp; |
||||
import com.hai.common.exception.SysCode; |
||||
import com.hai.common.utils.DateUtil; |
||||
import com.hai.entity.HighOrder; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.poi.ss.formula.functions.T; |
||||
import org.apache.rocketmq.common.message.Message; |
||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; |
||||
import org.apache.rocketmq.spring.core.RocketMQListener; |
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate; |
||||
import org.springframework.messaging.support.MessageBuilder; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import javax.annotation.Resource; |
||||
import java.util.Date; |
||||
|
||||
@Component |
||||
@Slf4j |
||||
@RocketMQMessageListener(consumerGroup = "order-create-group", topic = "order-topic",selectorExpression = "create") |
||||
public class OrderCreateConsumer implements RocketMQListener<HighOrder> { |
||||
public class OrderCreateConsumer implements RocketMQListener<Object> { |
||||
|
||||
@Resource |
||||
private RocketMQTemplate rocketMQTemplate; |
||||
|
||||
@Override |
||||
public void onMessage(HighOrder order) { |
||||
public void onMessage(Object order) { |
||||
try { |
||||
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户"); |
||||
//throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户");
|
||||
|
||||
/* System.out.println(JSONObject.toJSONString(order));*/ |
||||
// System.out.println(DateUtil.date2String(new Date(), "yyyy-MM-dd HH:mm:ss") + " 创建订单:" + order.getOrderNo());
|
@ -1,8 +0,0 @@ |
||||
<filter> |
||||
<filter-name>SentinelCommonFilter</filter-name> |
||||
<filter-class>com.alibaba.csp.sentinel.adapter.servlet.CommonFilter</filter-class> |
||||
</filter> |
||||
<filter-mapping> |
||||
<filter-name>SentinelCommonFilter</filter-name> |
||||
<url-pattern>/*</url-pattern> |
||||
</filter-mapping> |
@ -0,0 +1,16 @@ |
||||
package com.hai.order.service; |
||||
|
||||
import com.alicp.jetcache.anno.CacheType; |
||||
import com.alicp.jetcache.anno.Cached; |
||||
import com.hai.entity.HighOrder; |
||||
|
||||
/** |
||||
* @className: OrderService |
||||
* @author: HuRui |
||||
* @date: 2022/8/18 |
||||
**/ |
||||
public interface OrderService { |
||||
|
||||
@Cached(cacheType = CacheType.REMOTE,name="OrderService.getDetailByOrderNo", expire = 3600) |
||||
HighOrder getDetailByOrderNo(String orderNo); |
||||
} |
@ -0,0 +1,25 @@ |
||||
package com.hai.order.service.impl; |
||||
|
||||
import com.hai.entity.HighOrder; |
||||
import com.hai.order.service.OrderService; |
||||
import com.hai.service.HighOrderService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import javax.annotation.Resource; |
||||
|
||||
/** |
||||
* @className: OrderServiceImpl |
||||
* @author: HuRui |
||||
* @date: 2022/8/18 |
||||
**/ |
||||
@Service("orderService123") |
||||
public class OrderServiceImpl implements OrderService { |
||||
|
||||
@Resource |
||||
private HighOrderService highOrderService; |
||||
|
||||
@Override |
||||
public HighOrder getDetailByOrderNo(String orderNo) { |
||||
return highOrderService.getOrderByOrderNo(orderNo); |
||||
} |
||||
} |
Loading…
Reference in new issue