学习笔记(1)分布式商城技术与业务概述
分布式商城主要面临两个问题,其一是面临高并发高可用的技术问题,另一是面临复杂的业务问题。下面依次简要分析两种问题。
高并发高可用技术概述
概念
首先明确什么是分布式系统:
“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”。分布式系统(distributed system)是建立在网络之上的软件系统。——《分布式系统原理与范型》
集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。
系统防线
海量的请求会涌向系统前台,后台服务器和数据库服务器。三者都面临这高并发高可用的巨大挑战,因此必须采取各种措施优化其性能,保证用户体验。此次分布式商城项目为前后端分离项目。该项目的集中点为后台和数据库服务器。
对于后台服务器,大量合法请求会涌到后台服务器。因此,后台服务器就需要解决高并发造成的各种问题,举例如下。
数据的准确性。例如超卖问题、并发一致性问题等。超卖问题,即用户成功下单的数量超过了商品的库存。在处理超卖时,还要考虑一些不良的恶意行为。例如,如果竞争对手故意将商品抢到手但却不付款,该如何处理?并发环境下的一致性问题。如果使用了缓存,如何保证缓存的一致性?如果使用了分布式,如何保证分布式事务的一致性?
数据的时效性。除了要在并发环境下保证数据的准确性以外,还要控制数据的时效性。例如,用户在下单后,系统务必要在几秒内返回结果,保证用户体验。
系统的可用性。为了防止单节点故障,保证系统的高可用性,就需要将秒杀系统部署在由多个节点组成的集群上。集群如何搭建?应该依据什么将海量请求分流到集群中的不同节点上?在机房部署集群时,应该如何具体划分?
系统的稳定性。除了高可用以外,我们也应当尽力提高集群中各个节点的性能。高并发会导致部分节点的性能下降,甚至造成某些节点的崩溃。我们如何在有限的硬件条件下,提高单节点的性能,从而提高整个集群系统的稳定性?“系统的可用性”是指搭建集群,“系统的稳定性”是指提高集群中每个节点的性能。
数据库服务器。数据库作为整个系统的最后一道防线。在高并发问题中,数