RabbitMQ分析全解之RabbitMQ介绍

RabbitMQ介绍什么是RabbitMQ?RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP,高级消息队列协议) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。

秒杀系统扣减库存的常见几种设计

背景我以前参与做过一个社交电商平台,其中就有秒杀场景,现在我从事的互联网酒店行业也有类似的秒杀场景,所以准备写一点关于秒杀相关的文字,就当总结记录一下吧。秒杀最主要的一个业务部门和我们技术部门需要注意一点,就是要防止超卖,而这个是电商行业经常会出现的现象。没有接触过秒杀的童鞋,可能会觉得,库存 200 件就卖 200 件,在数据库里减到 0 不就好了啊,这有什么好麻烦的?是的,理论上是这样,但是具体到业务场景中,“减库存”就不是这么简单了。例如,我们平常在淘宝或者京东上购物都是这样,看到喜欢的商品然后下单,但并不是每个下单请求你都最后付款了。你说系统是用户下单了就算这个商品卖出去了,还是等到用户真正付款了才算卖出了呢?这是个值得我们一起探讨问题!我们可以先根据减库存是发生在下单阶段还是付款阶段,把减库存做一下划分。 扣减库存主要有哪几种方式呢在正常的电商平台购物场景中,用户的实际购买过程一般分为两步:下单 和 付款。你想买一台佳能单反相机,在商品页面点了“立即购买”按钮,核对信息之后点击“提交订单”,这一步称为下单操作。下单之后,你只有真正完成付款操作才能算真正购买,也就是俗话说的“落袋为安”。那如果你是架构师,你会在哪个环节完成减库存的操作呢?总结来说,减库存操作一般有如下几个方式: