微服务概念简记
# 微服务概念简记
简单记录一下微服务出现的相关概念。
# 微服务特征
官方的定义:
- 一系列的独立的服务共同组成系统
- 单独部署,跑在自己的进程中
- 每个服务为独立的业务开发
- 分布式管理
- 非常强调隔离性
大概的标准:
- 分布式服务组成的系统
- 按照业务,而不是技术来划分组织
- 做有生命的产品而不是项目
- 强服务个体和弱通信( Smart endpoints and dumb pipes )
- 自动化运维( DevOps )
- 高度容错性
- 快速演化和迭代
# 高可用、高并发、高性能
关于高可用、高并发、高性能:属于分布式框架设计需要考虑的点。
- 高可用:保证系统一直可用;
- 高并发:保证系统能被同时并行处理很多请求;
- 高性能:指程序处理速度非常快,所占内存少,cpu占用率低。
# 微服务的数据库
关于微服务架构的数据库:在微服务架构中,每一个服务有自己的数据库,所以我们单个数据库中部分数据的外键取消了,导致不同数据库中的数据相互使用时必须重复数据,导致部分数据冗余。
# IaaS、PaaS、SaaS
三个名词:IaaS、PaaS、SaaS 即云计算的三种服务模式
- SaaS:Software-as-a-Service(软件即服务)提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等;
- PaaS:Platform-as-a-Service(平台即服务)提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。
- IaaS: Infrastructure-as-a-Service(基础设施即服务)提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。
# CAP定理和BASE理论
CAP定理:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项 。
- 一致性(Consistency):一致性指 “all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。
- 可用性(Availability):可用性指 “Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。
- 分区容错性(Partition tolerance):分区容错性指 “the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
BASE 理论:它是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。
- 基本可用(Basically Available): 基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
- 软状态(Soft State): 软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。MySQL Replication 的异步复制也是一种体现。
- 最终一致性(Eventual Consistency): 最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
上次更新: 5/21/2023, 11:34:33 PM