《极客时间教程 - 秒杀系统》笔记
开篇词丨秒杀系统架构设计都有哪些关键点?
秒杀的整体架构可以概括为“稳、准、快”几个关键字
- 稳-高可用 - 服务需要考虑各种容错场景,保证服务可用
- 准-一致性 - 高并发下的库存数量增减不能出错,避免超卖
- 快-高性能 - 支持高并发的读写
设计秒杀系统时应该注意的 5 个架构原则
秒杀系统本质上就是一个满足大并发、高性能和高可用的分布式系统。
...大约 16 分钟
秒杀的整体架构可以概括为“稳、准、快”几个关键字
秒杀系统本质上就是一个满足大并发、高性能和高可用的分布式系统。
扩展:
服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。
在微服务架构下,服务注册和发现机制中主要有三种角色:
服务发现通常依赖于注册中心来协调服务发现的过程,其步骤如下:
这个过程很像是生活中的房屋租赁,房东将租房信息挂到中介公司,房客从中介公司查找租房信息。房客如果想要租房东的房子,通过中介公司牵线搭桥,联系上房东,双方谈妥签订协议,就可以正式建立起租赁关系。
复制主要指通过网络在多台机器上保存相同数据的副本。
复制数据,可能出于各种各样的原因:
节点角色:
节点 | 角色说明 |
---|---|
Provider | 暴露服务的服务提供方 |
Consumer | 调用远程服务的服务消费方 |
Registry | 服务注册与发现的注册中心 |
Monitor | 统计服务的调用次数和调用时间的监控中心 |
Container | 服务运行容器 |
ES 存储数据的流程可以从三个角度来阐述:
Elasticsearch 支持多种搜索:
Term 是表达语意的最小单位。搜索和利用统计语言模型进行自然语言处理都需要处理 Term
Term 级别查询:Term / Range / Exists / Prefix / Wildcard
在 ES 中,Term 查询,对输入不做分词。会将输入作为一个整体,在倒排索引中查找准确的词项,并且使用相关度计算公式为每个包含该词项的文档进行相关度计算。
Elasticsearch 是一款基于 Lucene 的开源分布式搜索引擎。