当前位置: 首页 > news >正文

东莞网站设地工信部网站备案审核

东莞网站设地,工信部网站备案审核,wordpress页面之间如何跳转,怎么制作一个平台1. 前言 目的:该项目只用于技术交流,不用于过多商业用途。 适用:可用于简历亮点、毕业答辩等。 2. 项目成果 2.1 秒杀主页 包含5个功能点: ①、Product Name:秒杀商品名称 ②、Product Image:秒杀商…

1. 前言

目的:该项目只用于技术交流,不用于过多商业用途。 

适用:可用于简历亮点、毕业答辩等。

2. 项目成果

2.1 秒杀主页

包含5个功能点:

①、Product Name:秒杀商品名称

②、Product Image:秒杀商品图片

③、Price:秒杀价格

④、Seckill starts in:距离秒杀所剩时间

⑤、Seckill Now:秒杀按钮(核心逻辑)

部分不重要参数,没有做UI设计,只为功能而生

 2.2 秒杀架构

①、MySQL主从复制:一主二从

②、Redis缓存、Redis分布式锁

③、MQ异步处理库存、订单

 

3. 核心代码讲解

3.1 缓存预热

@Override
public void afterPropertiesSet() throws Exception {// 缓存秒杀商品List<SeckillGoods> seckillGoodsList = seckillMapper.queryAllSeckillGoods();for(SeckillGoods goods : seckillGoodsList) {String goodsId = goods.getId();Integer stock = goods.getGoodsStock();HashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put(CONSTANT.SECKILLGOODS, goodsId, stock);}// 缓存秒杀订单List<SeckillOrder> seckillOrderList = seckillMapper.queryAllSeckillOrder();for(SeckillOrder seckillOrder : seckillOrderList) {String userId = seckillOrder.getUserId();String goodsId = seckillOrder.getGoodsId();HashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put(CONSTANT.SECKILLORDER, userId + "," + goodsId, CONSTANT.SECKILLORDER);}}

3.2 核心业务逻辑

@Override
public Map<String, String> buySeckillGoods(String userId, String goodsId) {Map result = new HashMap<String, String>();RLock lock = redisson.getLock(CONSTANT.SECKILLLOCK); // 拿不到会自己阻塞try {lock.lock();// 检查Redis秒杀商品是否有库存Integer stock = (Integer) redisTemplate.opsForHash().get(CONSTANT.SECKILLGOODS, goodsId);if(stock <= 0) {result.put("msg", "秒杀商品库存不足!");result.put("success", "400");return result;}// 检查该用户是否秒杀过该商品Object orderConstant = redisTemplate.opsForHash().get(CONSTANT.SECKILLORDER, userId + "," + goodsId);if(orderConstant != null) {result.put("msg", "该用户已经秒杀过该商品了!");result.put("success", "400");return result;}// Redis新增订单String orderId = UUID.randomUUID().toString();SeckillOrder seckillOrder = new SeckillOrder();seckillOrder.setId(orderId);seckillOrder.setGoodsId(goodsId);seckillOrder.setUserId(userId);redisTemplate.opsForHash().put(CONSTANT.SECKILLORDER, userId + "," + goodsId, CONSTANT.SECKILLORDER);// Redis减少库存redisTemplate.opsForHash().put(CONSTANT.SECKILLGOODS, goodsId, stock-1);// MQ处理库存和订单rabbitTemplate.convertAndSend("seckillGoodsExchange", "seckillGoodsRouting", seckillOrder);rabbitTemplate.convertAndSend("seckillOrderExchange", "seckillOrderRouting", seckillOrder);}catch (Exception e) {e.printStackTrace();}finally {lock.unlock(); // 解锁}result.put("msg", "秒杀商品成功!");result.put("success", "200");return result;
}

4. 其他

还存在其他的补充点(订单支付超时、订单真实支付、MQ消息问题、Redis单机问题等),如果喜欢请三连,我会继续更新。

需要完整代码或帮忙搭建环境,请留下邮箱。

http://www.yayakq.cn/news/958944/

相关文章:

  • 常州市网站制作国内公关公司排名
  • 网站架构演变过程深圳网页设计公司建设
  • wordpress 自动采集插件重庆seo网络推广
  • 免费信息推广网站做我女朋友网站p0rn视频
  • 做网站的业务员淘宝电脑版网页
  • 做网站搞流量挂联盟广告变现背投广告典型网站
  • 广西建设局网站学校网站建设方案设计
  • 用vs做网站 怎么安装建设银行网站机构
  • 建网站seo网站平台开发报价单
  • 网站建设几个文件夹网站整改建设安全设备方案
  • 温州市建设厅网站首页贵州网站建设seo
  • 湖州哪里做网站南昌网站全新开发
  • 垂直网站建设谈谈你对网络营销的认识
  • 做响应式网站的公司专门做985招聘信息的网站
  • 平台网站建设方案个人网站开发主要问题
  • 服装 网站规划方案牡丹江做网站的公司
  • 巴彦淖尔专业做网站的公司wordpress修改邮箱
  • ag娱乐建设网站汽车网站有哪些
  • 东莞建网站邯郸 网站建设
  • 顺德网站制作案例效果wordpress主查询
  • 怎样创办网站wordpress新增管理员
  • 加氢站个公司好推广品牌
  • 中国职业培训在线官方网站wordpress reset api
  • 信阳住房和城乡建设局网站wordpress开发手机主题教程
  • 盐城城乡建设局网站建站不备案
  • 企业网站搭建项目概述范文wordpress可不可以
  • 网站内容框架做网站标题居中代码
  • 域名等于网站网址吗优质的广州做网站
  • 2018年互联网大会成都seo培
  • html5 php 网站源码动漫网站 设计