架构目标:
高性能(快速的访问体验),高可用(一直可以正常访问),可伸缩(通过硬件增加减少提高减低处理能力),高扩展(系统间耦合低,方便新增或者减少功能模块),安全性(提供网站安全访问和数据加密,安全存储策略),敏捷性(随需应变,快速响应)
响应时间:
执行一个请求从开始到最后收到响应的总时间
并发数
系统同时处理的请求数量
并发连接数:每秒服务器连接的TCP数量
请求数:每秒多少请求QPS
并发用户数:单位时间多少用户
吞吐量
单位时间内系统处理的请求数量
QPS:每秒查询数
TPS:每秒事务数
集群和分布式
前者很多人一起干一样的事,一个业务模块部署在堕胎服务器上;
后者很多人一起干不一样的事,一个大的业务系统,拆分为小的业务模块,分别部署在不同的机器上
架构演进
单体架构
可以单机可以多机,小型项目首选,开发部署方便,启动慢,可靠性差,可伸缩性差,扩展性可维护性差,性能低
垂直架构
一个项目的多个模块分成多个项目,形成多个独立的单体架构,解决了单体架构的问题,但是重复功能太多
分布式架构
将重复的模块作为提供者,其他的作为消费者,实现服务的共享和重用,其实就是RPC框架;提供方一旦变更,所有消费方都需要变更
SOA架构(面向服务的架构)
SOA,将服务拆分后,通过这些服务之间定义良好的接口和契约联系起来;
ESB远程调用,作为中间件,提供服务与服务之间的交互;包含的功能有负载均衡、流量控制、加密处理、服务监控、异常处理、监控告急
缺点服务方变更,消费方也要变更
微服务架构
是SOA的升华,业务需要彻底的组件化和服务化,小应用之间通过服务完成交互和集成,业务系统中的小应用可以独立开发设计及运行;80%的SOA服务架构思想+100%组件化架构思想+80%领域建模思想;
特点:
服务实现组件化,开发者可以自由选择开发技术;服务之间交互一般使用REST API;去中心化,每个微服务有自己私有的数据库持久化业务数据;自动化部署,把应用拆分成为一个一个的单个服务,方便自动化部署、测试及运维
缺点是服务太多,涉及的事务的处理问题