谷粒商城一介绍及基本架构todo( 二 )


定时任务中也有用到分布式锁 。定时任务上架秒杀商品有三台服务器,代码是一样的,所以会执行三个一模一样的定时任务,而我们只需要一个即可 。
只要用了分布式锁,上架过了就不需要再上架了 。分布式锁可以锁住所有的机器,让只有一个机器去来执行这个任务就行了 。
es,商品的检索不能放在mysql中,性能非常低下 。我们所有的检索功能,无论是按照分类、属性、名字检索,所有的检索数据全部保存在es中,它是一个非常专业的检索引擎 。
在高并发系统中,异步是必要的,一定会编写的 。
以前是new .start(),但如果在高并发系统中,每一个请求进来都这样干的话,资源会很快耗尽的 。
所以为了控制整个系统的资源,我们要使用线程池,所有的异步任务都提交给线程池,这样线程池中会有一个最大量,就不害怕系统因为一些资源耗尽导致的崩溃 。
即使有了异步任务提交给线程池,异步任务之间还可能有顺序,我们可以使用异步编排,异步编排 。
登录
不同域名系统下需要用单点登录 。
我们使用的是相同域名的,暂时可以不用使用单点登录 。
相同域名下,登录一次相当于处处都要实现单点登录效果,我们整合了,将所有微服务的进行同步 。登录成功之后,去哪一个微服务,都可以获取到数据 。我们使用解决了分布式系统不一致的问题 。
商城主要业务
商品上架、商品检索、商品详情、购物车、订单、秒杀,具体细节在商城业务.pdf中 。
在商品详情中,用的最多的是缓存技术,除了把数据缓存到redis,我们还整合了方便的使用缓存 。以后我们的全系统都应该使用这种方式来进行缓存 。包括解决缓存的不一致、更新、清空问题,都可以帮我们方便的解决这些问题 。
,分布式事务最终一致性
我们在做分布式事务实现最终一致性的时候,是一个很必要的工具 。我们只需要a服务给b服务来发一个消息,它不用关心最终怎么做 。
在订单这个场景下使用它做分布式事务,在秒杀中用它做削峰处理,将所有的流量排队放到队列中,由我们的后台慢慢消费 。
如果引入队列,ab服务也不用关心接口调用了,a都不用调用b,所以相当于我们将应用之间进行了解耦 。
的使用也非常深入,特别是在订单,我们在关单的时候,我们使用了的死信队列,保证需要关单的数据都能被关掉 。
支付,整合支付宝的沙箱来进行支付
定时任务与分布式调度,秒杀商品的上架
最终,在高级篇构建一个高并发系统,除了引入和 相关组件外,高并发系统中还有以下三大重要手段 。
项目背景 电商模式
市面上有 5 种常见的电商模式 B2B、B2C、C2B、C2C、O2O;

谷粒商城一介绍及基本架构todo

文章插图
B2B 模式 B2B ( to ),是指商家与商家建立的商业关系 。如:阿里巴巴、八方资源网等
B2C 模式 B2C ( to ),就是我们经常看到的供应商直接把商品卖给用户,即“商对客” 模式,也就是通常说的商业零售,直接面向消费者销售产品和服务 。如:亚马逊、当当等
B2C平台:天猫、京东、一号店等
C2B 模式 C2B ( to ),即消费者对企业 。先有消费者需求产生而后有企业生产,即先 有消费者提出需求,后有生产企业按需求组织生产
C2C 模式 C2C ( to ) ,客户之间自己把东西放上网去卖,如:淘宝,闲鱼
O2O 模式 O2O 即To ,也即将线下商务的机会与互联网结合在了一起,让互联网成为线 下交易的前台 。线上快速支付,线下优质服务 。如:饿了么,美团,淘票票,京东到家