1.基本概念
- 应⽤(Application) / 系统(System)
- 为了完成⼀整套服务的⼀个程序或者⼀组相互配合的程序群
- 一个应用,就是一个/组服务器程序
- 模块(Module) / 组件(Component)
- 当应⽤较复杂时,为了分离职责,将其中具有清晰职责的、内聚性强的部分,抽象出概念,便于理解
- 一个应用,里面有很多个功能,每个独立的功能,就可以称之为一个模块/组件
- 分布式(Distributed)
- 系统中的多个模块被部署于不同服务器之上,即可以将该系统称为分布式系统
- 跨主机之间的模块之间的通信基本要借助⽹络⽀撑完成
- 引入多个主机/服务器,协同配合完成一系列的工作
- 物理上的多个主机
- 系统中的多个模块被部署于不同服务器之上,即可以将该系统称为分布式系统
- 集群(Cluster)
- 被部署于多台服务器上的、为了实现特定⽬标的⼀个/组特定的组件,整个整体被称为集群
- 引入多个主机/服务器,协同配合完成一系列的工作
- 逻辑上的多个主机
- 分布式 VS 集群:通常不⽤太严格区分两者的细微概念,细究的话:
- 分布式强调的是物理形态,即⼯作在不同服务器上并且通过⽹络通信配合完成任务
- 集群更在意逻辑形态,即是否为了完成特定服务⽬标
- 主(Master) / 从(Slave)
- 集群中,通常有⼀个程序需要承担更多的职责,被称为主;其他承担附属职责的被称为从
- 多个服务器节点,其中一个是主,其他的是从,从节点的数据要从主节点这里同步过来
- 分布式系统中一种比较典型的结构
- 中间件(Middleware)
- ⼀类提供不同应⽤程序⽤于相互通信的软件,即处于不同技术、⼯具和数据库之间的桥梁
- 和业务无关的服务(功能更通用的服务)
- 例如:数据库、缓存、消息队列等等
2.评价指标(Metric)
- 可⽤性(Availability) --> 一个系统的第一要务
- 考察单位时间段内,系统可以正常提供服务的概率/期望
- 系统整体可用的时间 / 总的时间
- 响应时⻓(ResponseTimeRT)
- 指⽤⼾完成输⼊到系统给出⽤⼾反应的时⻓
- 通常需要衡量的是最⻓响应时⻓、平均响应时⻓和中位数响应时⻓
- 衡量服务器的性能,越小越好,和服务器具体要做的业务密切相关
- 指⽤⼾完成输⼊到系统给出⽤⼾反应的时⻓
- 吞吐(Throughput) VS 并发(Concurrent)
- 吞吐:考察单位时间段内,系统可以成功处理的请求的数量
- 并发:指系统同⼀时刻⽀持的请求最⾼量
- 实际中,并发量往往⽆法直接获取,很多时候都是⽤极短的时间段的吞吐量做代替