组件化和模块化中心思想都是分而治之。目的都是将一个 庞大的系统拆分成多个组件或者说是模块 组件化 将一个大的软件系统按照分离关注点的形式,拆分成多个独立的组件,主要目的就是减少耦合。一个独立的组件可以是一个软件包、web服务、web资源或者是封装了一些函数的模块。这样,独立出来的组件可以单独维护和升级而不会影响到其他的组件。 模块化 目的在于将一个程序按照其功能做拆分,分成相互独立的模块,以便于每个模块只包含与其功能相关的内容,模块之间通过接口调用。将一个大的系统模块化之后,每个模块都可以被高度复用。 集中式与分布式集中式 一个主机带多个终端。终端没有数据处理能力,仅负责数据的录入和输出。而运算、存储等全部在主机上进行。采用采用单机部署。 分布式 分布式意味着可以采用更多的普通计算机组成分布式集群对外提供服务。把不同的模块部署到不同的机器上,各个模块之间通过远程服务调用(RPC)等方式进行通信。 服务化服务化架构使搭建分布式系统成为了可能。服务化是一种粗粒度、松耦合的以服务为中心的架构,服务之间通过定义明确的协议和接口进行通信。这里说到的“服务”,本质上来说,就是指“RPC”。但是在一个复杂的业务环境,如何管理和协同这些大量的RPC才是最麻烦的事情。所以,一般提到的“服务化”更多指的是对RPC的管理。服务化一般关注服务注册,服务协调,服务可用性,服务通讯协议和内容交换等。 微服务架构通过将功能分散到各个离散的服务中以实现对解决方案的解耦。重点就是业务系统需要彻底的组件化和服务化。微服务不再强调传统SOA架构里面比较重的ESB企业服务总线。微服务把所有的“思考”逻辑包括路由、消息解析等放在服务内部,去掉一个大一统的ESB,服务间轻通信,是比SOA更彻底的拆分。 CAP定论一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 C一致性即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。 A可用性服务一直可用,而且是正常响应时间。 P分区容错性即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
BASEBASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent (最终一致性)三个短语的缩写。是对CAP中AP的一个扩展
BASE解决了CAP中理论没有网络延迟,在BASE中用软状态和最终一致,保证了延迟后的一致性。BASE和 ACID 是相反的,它完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态 |
|
来自: shawnsun007 > 《软件开发》