分布式系统上的相关概念
项目:传统项目、互联网项目
传统项目:
一般为公司内部使用,或者小群体小范围的使用,一般不要求性能,美观,并发等
互联网项目的特点:
1.用户多
2.流量大,并发高
3.海量数据
4.易受攻击
5.功能繁琐
6.变更快
衡量网站的性能指标:
响应时间:指执行一个请求从开始到结尾花费的总体时间
并发数:系统同时能处理的请求数量
并发连接数:指的是客户端向服务器发送请求,并建立TCP协议,每秒钟服务器连接的总TCP数量
请求数:QPS(query per second),每秒多少请求,即打开一个网站时,页面数据的总请求数
并发用户数量:指单位时间内有多少用户
吞吐量:单位时间内系统能处理的请求数量
高性能:提供快速的访问体验
高可用:网站服务一直可以正常访问,保证服务器长时间正常运转,分布式技术
可伸缩:通过硬件增加/减少,提高/降低处理能力
高可扩展:系统间耦合低,方便的通过新增/移除方式,增加/减少新的功能模块
安全性:提供网站的安全访问和数据加密
敏捷性:需随时应变,快速响应
集群和分布式
集群:很多人一起做同样的事情
分布式:很多人一起干部一样的事情,这些不一样的事情合起来就是一件大事
架构演进
1.单体架构
优点:开发部署很方便,小型项目首选
缺点:项目启动慢,可靠性差,可伸缩性差,扩展性和维护性差,性能低
2.垂直架构
将单体架构拆分为多个独立的项目,形成多个独立的单体架构
相比单体架构,优缺点:项目启动较快,可靠性差,可伸缩性较好,扩展性和可维护性较好,性能较好,重复的功能模块较多
3.分布式架构
4.SOA架构
ESA:企业服务总线,服务中介,主要是提供了一个服务于服务之间的交互。负载均衡,流量控制,加密处理,服务监控,异常处理,监控告急等
各模块信息发生变更后,会通知ESB,ESB会存储变更后的信息,其余模块之间想要通信,直接找ESB即可
5.微服务架构–(SOA的细化升级)
服务实现组件化,开发者可以自由的选择开发技术不需要协调其他团队
去中心化:每个微服务都有自己的数据库持久化业务数据
自动化部署:把应用拆分成一个独立的单个服务,方便自动化部署、测试、运维