随笔分类 - 实战项目专题
写过的项目实战
摘要:使用缓存条件: 首页门户系统需要展示各种各样的广告数据,变更频率低的数据,如何提升访问速度? 1.数据做成静态页[商品详情页] 2.做缓存[Redis] 基本的思路如下: 如上图此种方式 简单,直接通过数据库查询数据展示给用户即可,但是通常情况下,首页(门户系统的流量一般非常的高)不适合直接通过my
阅读全文
摘要:文件存储微服务 创建文件管理微服务changgou-service-file,该工程主要用于实现文件上传以及文件删除等功能。 pom.xml依赖 修改pom.xml,引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://
阅读全文
摘要:下载FastDFS镜像 拉取镜像(已经下载了该镜像,大家无需下载了) docker pull morunchang/fastdfs 我们使用Docker搭建FastDFS的开发环境,虚拟机中已经下载了fastdfs的镜像,可以通过docker images查看,如下图: 运行tracker dock
阅读全文
摘要:FastDFS简介 FastDFS体系结构 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS为互联网量身定制,
阅读全文
摘要:商品微服务搭建 商品微服务主要是实现对商品的增删改查相关操作,以及商品相关信息的增删改查。 公共组件工程搭建 创建changgou-service-api子模块changgou-service-goods-api,并将资料\javabean\changgou-service-goods-api中的P
阅读全文
摘要:环境准备 直接导入安装好环境的虚拟机: 虚拟机IP:192.168.211.132 虚拟机账号:root 密码:123456 数据库端口:3306 数据库账号:root 密码:123456 注意:将VM的虚拟网络号段修改为211与虚拟机IP号段保持一致。 数据库表介绍: 数据库脚本:资料\数据库脚本
阅读全文
摘要:框架搭建 01_电商行业介绍 02_项目使用技术介绍 03_项目框架搭建 04_商品微服务搭建及curd实现 分布式文件存储FastDFS实战 01_FastDFS介绍 02_FastDFS环境搭建 03_文件存储微服务搭建 04_相册、规格、分类实现 商品发布 01 01 01 01 lua、Ca
阅读全文
摘要:01章 Activiti7工作流引擎 01_ 02章 SAAS-IHRM系统概述与搭建环境 01_ 03章 SAAS-IHRM-数据库设计与前端框架 04章 SAAS-IHRM系统用户权限设计概述 05章 权限分配与jwt概述 06章 JWT的权限控制与Shiro入门 07章 Shiro高级 及Sa
阅读全文
摘要:因为秒杀的特殊业务场景,生产场景下,还有可能要对秒杀下单接口进行访问流量控制,防止过多的请求进入到后端服务器。对于限流的实现方式,我们之前已经接触过通过nginx限流,网关限流。但是他们都是对一个大的服务进行访问限流,如果现在只是要对某一个服务中的接口方法进行限流呢?这里推荐使用google提供的g
阅读全文
摘要:当前虽然可以确保用户只有在登录的情况下才可以进行秒杀下单,但是无法防止有一些恶意的用户在登录了之后,猜测秒杀下单的接口地址进行恶意刷单。所以需要对秒杀接口地址进行隐藏。 在用户每一次点击抢购的时候,都首先去生成一个随机数并存入redis,接着用户携带着这个随机数去访问秒杀下单,下单接口首先会从red
阅读全文
摘要:修改下单业务层实现 dao层新增查询方法 public interface SeckillOrderMapper extends Mapper<SeckillOrder> { /** * 查询秒杀订单信息 * @param username * @param id * @return */ @S
阅读全文
摘要:在生产场景下,很有可能会存在某些用户恶意刷单的情况出现。这样的操作对于系统而言,会导致业务出错、脏数据、后端访问压力大等问题的出现。 一般要解决这个问题的话,需要前端进行控制,同时后端也需要进行控制。后端实现可以通过Redis incrde 原子性递增来进行解决。 更新秒杀服务下单 防重方法实现 /
阅读全文
摘要:用户在下单的时候,需要基于JWT令牌信息进行登陆人信息认证,确定当前订单是属于谁的。 针对秒杀的特殊业务场景,仅仅依靠对象缓存或者页面静态化等技术去解决服务端压力还是远远不够。对于数据库压力还是很大,所以需要异步下单,异步是最好的解决办法,但会带来一些额外的程序上的复杂性。 秒杀服务-下单实现 1)
阅读全文
摘要:秒杀商品首页会显示处于秒杀中以及未开始秒杀的商品。 秒杀首页实现分析 秒杀首页需要显示不同时间段的秒杀商品信息,然后当用户选择不同的时间段,查询该时间段下的秒杀商品,实现过程分为两大过程: 1) 加载时间菜单 2)加载时间菜单下秒杀商品信息 加载时间菜单分析 每2个小时就会切换一次抢购活动,所以商品
阅读全文
摘要:秒杀商品由B端存入Mysql,设置定时任务,每隔一段时间就从Mysql中将符合条件的数据从Mysql中查询出来并存入缓存中,redis以Hash类型进行数据存储。 秒杀服务搭建 1)新建服务changgou_service_seckill 2)添加依赖信息,详情如下: <dependencies>
阅读全文
摘要:需求分析 所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。 秒杀商品通常有两种限制:库存限制、时间限制。 需求: (1)秒杀频道首页列出秒杀
阅读全文
摘要:确认收货 需求分析与实现思路 当物流公司将货物送到了用户收货地址之后,需要用户点击确认收货,当用户点击了确认收货之后,会修改订单状态为已完成 代码实现 (1)OrderController新增方法 /** * 确认收货 * @param orderId 订单号 * @param operator 操
阅读全文
摘要:批量发货业务逻辑 需求分析 实现批量发货的业务逻辑 代码实现 (1)OrderController新增方法 /** * 批量发货 * @param orders 订单列表 */ @PostMapping("/batchSend") public Result batchSend( @RequestB
阅读全文
摘要:需求分析 超过限定时间并未支付的订单,我们需要进行超时订单的处理:先调用微信支付api,查询该订单的支付状态。如果未支付调用关闭订单的api,并修改订单状态为已关闭,并回滚库存数。如果该订单已经支付,则做补偿操作(修改订单状态和记录)。 实现思路 如何获取超过限定时间的订单?我们可以使用延迟消息队列
阅读全文
摘要:需求分析 当用户完成扫码支付后,跳转到支付成功页面 服务端推送方案 我们需要将支付的结果通知前端页面,其实就是我们通过所说的服务器端推送,主要有三种实现方案 (1)Ajax 短轮询 Ajax 轮询主要通过页面端的 JS 定时异步刷新任务来实现数据的加载 如果我们使用ajax短轮询方式,需要后端提供方
阅读全文