当年许多企业级应用一般都会面临着以下难题:
1)用户数量越来越多,导致接入设备成本越来越大
2)业务体量和复杂程度不断增加
3)数据趋于海量,处理难度加大
4)安全环境也受重视
所以,随着代码量和愈渐复杂的需求,单体应用的关系也变得纷繁杂乱,导致开发测试和维护也难以为继。
至此,我们将单体应用拆分成面向服务的架构(SOA)即分布式架构;
分布式架构(SOA)系统是将其组件分布在联网的计算机上,在组件与组件之间通过传递消息进行同信和动作协调的系统 ,一个服务通常以独立的行驶存在于操作系统进程中。
而在SOA之下,为了满足更为强健的业务需求,我们又在SOA的基础至上做了升华,即微服务架构(MSA);
为服务架构(MSA)一定是一个分布式架构,但反过来分布式架构并不一定都是微服务架构,MSA相对于SOA它强调的是“业务需要彻底的组件化和服务化”。
在一个分布式系统中,需要满足CPA理论,包括一致性(Consistency)+ 分区容错性(Partition tolerance)+ 可用性(Availability),但是,这三个要素不可能同时满足C(一致性)、P(分区容错性)