家乡的落日
博观约取,厚积薄发。拒绝浮躁,保持谦逊。
展开
-
B2C电商项目(第十五天、秒杀后端、异步下单、防止恶意刷单、防止重复秒杀、下单接口隐藏、下单接口限流 )
秒杀后端学习内容 :1)实现秒杀异步下单,掌握如何保证生产者&消费者消息不丢失2)实现防止恶意刷单3)实现防止相同商品重复秒杀4)实现秒杀下单接口隐藏5)实现下单接口限流一、秒杀异步下单用户在下单的时候,需要基于JWT令牌信息进行登陆人信息认证,确定当前订单是属于谁的。针对秒杀的特殊业务场景,仅仅依靠对象缓存或者页面静态化等技术去解决服务端压力还是远远不够。对于数据库压力还是很大,所以需要异步下单,异步是最好的解决办法,但会带来一些额外的程序上的复杂性。1.1、 秒杀服务-下原创 2020-06-15 16:19:12 · 1851 阅读 · 0 评论 -
B2C电商项目(第十四天、秒杀前端、秒杀商品存入缓存、秒首页实现、时间菜单、倒计时、加载商品列表、抢购按钮 )
秒杀前端课程内容 :1)了解秒杀需求2) 完成秒杀商品存入缓存3) 完成秒杀首页实现一、秒杀业务分析1.1 需求分析所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。秒杀商品通常有两种限制:库存限制、时间限制。需求:(1)秒杀频道首页列出秒杀商品(4)点击立即抢购实现秒杀下单,下单时扣减库存。当库存为0或不在活动期范围内时无法原创 2020-06-15 09:36:23 · 669 阅读 · 0 评论 -
B2C电商项目(第十三天、超时未支付订单处理、订单批量发货、确认收货与自动收货)
订单处理课程内容:通过 rabbitmq的延迟消息完成超时订单处理完成批量发货功能,了解第三方物流系统完成自动收货功能一、超时未支付订单处理1.1 需求分析超过限定时间并未支付的订单,我们需要进行超时订单的处理:先调用微信支付api,查询该订单的支付状态。如果未支付调用关闭订单的api,并修改订单状态为已关闭,并回滚库存数。如果该订单已经支付,则做补偿操作(修改订单状态和记录)。1.2 实现思路如何获取超过限定时间的订单?我们可以使用延迟消息队列(死信队列)来实现。所谓延迟消息队列,原创 2020-06-15 09:35:58 · 1422 阅读 · 0 评论 -
B2C电商项目(第十二天、微信扫码支付、支付二维码、支付回调逻辑、推送支付通知)
一、 微信扫码支付学习内容:能够根据微信支付的开发文档调用微信支付的 api完成统一下单生成微信支付二维码功能完成支付回调的逻辑处理,掌握 EchoSite的使用完成推送支付通知功能微信支付快速入门1.1 微信支付申请(了解)第一步:注册公众号(类型须为:服务号)请根据营业执照类型选择以下主体注册:个体工商户 | 企业 /公司| 政府 | 媒体 | 其他类型 。第二步:认证公众号公众号认证后才可申请微信支付,认证费:300元/次。第三步:提交资料申请微信支付登录公众平台,点击左原创 2020-06-13 22:00:10 · 827 阅读 · 0 评论 -
B2C电商项目(第十一天、分布式事务解决方案、Seata实现分布式事务、消息队列实现分布式事务、订单服务和用户服务业务代码)
一、分布式事务解决方案学习目标 :了解本地事务与分布式事务了解CAP理论与BASE理论了解常见分布式事务解决方案能够通过Seata实现分布式事务能够通过消息队列实现分布式事务刚才我们编写的扣减库存与保存订单是在两个服务中存在的,如果扣减库存后订单保存失败了是不会回滚的,这样就会造成数据不一致的情况,这其实就是我们所说的分布式事务的问题,接下来我们来学习分布式事务的解决方案。1.1 本地事务与分布式事务1.1.1 事务数据库事务(简称:事务,Transaction)是指数据库执行过原创 2020-06-12 22:04:56 · 927 阅读 · 0 评论 -
B2C电商项目(第十天、收件地址管理、地址管理页面渲染、下单业务实现)
B2C电商项目(第十天、分布式事务解决方案、Seata分布式事务、代码实现基于消息队列分布式事务)原创 2020-06-11 23:57:49 · 1212 阅读 · 0 评论 -
B2C电商项目(第九天、购物车模块、订单服务对接oauth、微服务之间认证、登录跳转页面配置)
一、购物车购物车分为用户登录购物车和未登录购物车操作,国内知名电商京东用户登录和不登录都可以操作购物车,如果用户不登录,操作购物车可以将数据存储到Cookie,用户登录后购物车数据可以存储到Redis中,再将之前未登录加入的购物车合并到Redis中即可。淘宝天猫则采用了另外一种实现方案,用户要想将商品加入购物车,必须先登录才能操作购物车。我们今天实现的购物车是天猫解决方案,即用户必须先登录才能使用购物车功能。1.1、购物车业务分析(1)需求分析用户在商品详细页点击加入购物车,提交商品SKU编原创 2020-06-10 16:40:00 · 706 阅读 · 0 评论 -
B2C电商项目(第八天、用户认证、单点登录、Oauth2认证、项目认证开发、认证服务对接网关、登录页、SpringSecurity 权限控制)
一、用户认证1.1 、 用户认证分析上面流程图描述了用户要操作的各个微服务,用户查看个人信息需要访问客户微服务,下单需要访问订单微服务,秒杀抢购商品需要访问秒杀微服务。每个服务都需要认证用户的身份,身份认证成功后,需要识别用户的角色然后授权访问对应的功能。1.1.1、 单点登录用户访问的项目中,至少有3个微服务需要识别用户身份,如果用户访问每个微服务都登录一次就太麻烦了,为了提高用户的体验,我们需要实现让用户在一个系统中登录,其他任意受信任的系统都可以访问,这个功能就叫单点登录。单点登录原创 2020-06-08 21:29:04 · 695 阅读 · 0 评论 -
B2C电商项目(第七天、SpringBoot整合thymeleaf实现页面静态化、搜索页面渲染、商品详情页、生成静态页)
一、Thymeleaf1.1、Thymeleaf介绍thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。T原创 2020-06-06 11:52:48 · 889 阅读 · 0 评论 -
B2C电商项目(第六天、Elasticsearch商品上架添加索引、商品下架删除索引库、商品搜索、多条件分页搜索、排序、高亮显示)
一、商品上架索引库导入数据1.1、需求分析商品上架将商品的sku列表导入或更新索引库。1.2、实现思路(1)在数据监控微服务中监控tb_spu表的数据,当tb_spu发生更改且is_marketable为1时,表示商品上架,将spu的id发送到rabbitmq。(2)在rabbitmq管理后台创建商品上架交换器(fanout)。使用分列模式的交换器是考虑商品上架会有很多种逻辑需要处理,导入索引库只是其中一项,另外还有商品详细页静态化等操作。这样我们可以创建导入索引库的队列和商品详细页静态化原创 2020-06-05 10:04:53 · 932 阅读 · 0 评论 -
B2C电商项目(第五天、网站首页高可用nginx+lua、Lua基本语法、nginx+lua+redis、OpenResty、nginx限流、canal同步数据解决方案)
六、网站首页高可用nginx+lua了解 Lua语言的基本语法使用 nginx+Lua+redis实现广告缓存掌握 nginx限流的基本使用方法6.1、Lua介绍Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学( Pontifical CatholicUniversity of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开原创 2020-06-02 23:46:49 · 645 阅读 · 0 评论 -
B2C电商项目(第四天、品牌与分类关联、根据ID查询商品、商品审核与上下架、商品删除与还原)
一、品牌与分类关联实现思路:将分类ID与SPU的品牌ID 一起插入到tb_category_brand表中(1)创建实体类@Table(name="tb_category_brand")public class CategoryBrand implements Serializable { @Id private Integer categoryId; @Id private Integer brandId; public Integer getCatego原创 2020-06-01 17:06:58 · 787 阅读 · 0 评论 -
B2C电商项目(第三天、网关限流、Bcrypt密码加密、Base64编码、JWT微服务鉴权、分布式ID生成解决方案、商品添加和修改的实现)
一、网关限流1.1、概念当我们的系统被频繁的请求的时候,就有可能将系统压垮,所以为了解决这个问题,需要在每一个微服务中做限流操作,但是如果有了网关,那么就可以在网关系统做限流,因为所有的请求都需要先通过网关系统才能路由到微服务中。1.2、思路分析图限流算法:令牌桶算法是比较常见的限流算法之一,大概描述如下:1)所有的请求在处理之前都需要拿到一个可用的令牌才会被处理;2)根据限流大小,设置按照一定的速率往桶里添加令牌;3)桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢弃或者拒绝;4原创 2020-05-31 19:31:46 · 589 阅读 · 0 评论 -
B2C电商项目(第二天、项目整体框架的CRUD、跨域解决方案、搭建分布式文件存储FastDFS完成文件上传、搭建微服务网管Gateway解决跨域,微服务网关过滤器过滤器)
项目整体框架的CRUD、跨域解决方案、搭建分布式文件存储FastDFS完成文件上传、搭建微服务网管Gateway解决跨域,微服务网关过滤器过滤器原创 2020-05-30 00:10:39 · 590 阅读 · 2 评论 -
B2C电商项目(第一天、项目搭建、Restful风格、拼音API、txMybatis、品牌增删改查、Swagger)
项目搭建、Restful风格、txMybatis、品牌增删改查、拼音API、Swagger原创 2020-05-29 00:44:18 · 655 阅读 · 3 评论