ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

项目总结——云商城

项目总结——云商城 一、管理员进行后台管理二、数据库分库商品订单秒杀用户权限支付log三、文件上传和下载Ceph集群Swift API配置用户信息获取容器使用容器进行uploaddownload四、商品发布id不为空修改id为空增加product:spuskus五、OpenRestynginxlua动静分离location多级缓存lua脚本redis缓存先查nginx缓存再查redis最后查后端服务后端服务开启缓存CacheConfigCacheableCacheEvictCachePut缓存一致性canalEntryHandler调用后端缓存更新接口六、ESES的构建通过实现ElasticsearchRepository接口重写方法实现ES更新的Feign接口canal调用feign接口实现数据库更新同步ES索引ES的搜索构建搜索条件普通搜索排序withSort分页withPageable构建分组条件品牌/分类List属性MapString,SetString亮亮withHighlightBuilder七、搜索页面详情页面数据绑定thymeleafvue商品详情静态页面通过templateengine使用模版数据输出得到对应的静态页面canal实时生成静态页面八、购物车Mongodb查询多数据量大持久1.数据量大2.结构化的数据比如JSON数据3.支持复杂查询mapper继承mongodbrepositoryMongoTemplate操作key是usernameid九、下单操作1.订单根据用户名查到对应列表订单下单处理先看库存够用扣减增加订单增加订单明细删除购物车数据订单使用Seata的AT模式构建分布式事务组2.支付支付系统调用微信API加密传输MD5验签AES微信验签微信进行预支付返回二维码地址前台通过Qrious展示二维码微信进行密码输入验证之后返回支付结果给回调地址支付系统通过MQ异步生成支付日志异步更改订单状态主动查询支付结果将不可逆转的日志结果存到pay_log没有数据再去查微信支付服务3.退款更改订单状态退款申请中进行退款申请使用MQ让支付系统发起退款申请支付系统使用MQ将退款申请结果返回给订单系统成功更改订单状态不成功回滚库存十、每日秒杀1.页面秒杀商品es索引库秒杀商品详情页静态页面生成定时任务elastic-job lite当活动增加或修改创建对应的定时任务删除静态页面2.热门数据获取Lua脚本收集logjson日志发送给Kafka在访问html详情页的location里面进行log_by_lua的配置,Apache Druid:数据摄入kafka3.热门商品分离每隔10分钟读取新增热门商品将islock改为1进行隔离加入缓存4.秒杀隔离实现微服务网关过滤器拦截秒杀请求进行排队判断排队标识避免重复排队加入RocketMQ排队下单使用redission分布式锁先过布隆过滤器然后下单扣减库存库存为0加入布隆过滤器十一、网关鉴权1.JWT令牌登录的时候创建令牌加上ip返回给用户用户访问校验令牌ip2.网关过滤器redis布隆过滤器里面存储对应的uri先校验uri是否有效redis存储对应的权限先检查是否拦截拦截就进行权限校验ApplicationRunner加入所有权限和所有角色权限映射pathMatcher通配符匹配权限校验完进行秒杀热商品排队十二、限流sentinelgateway限流网关API分组限流规则nginx限流速率连接数黑白名单LVS百万并发NAT模式TUN模式DR模式
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表