什么是微服务?
简单的说,微服务是系统架构上的一种设计风格,旨在将一个原本独立的系统拆分成多个小型服务,每个小服务各自独立的进程中运行,相互之间不影响,服务之间通过基于HTTP的RESTful API进行通信协作。
每一个小型服务都是围绕着某一项业务功能进行构建,并且同时维护着自身的数据存储、业务开发、测试机制以及部署机制。
优点:1.每一个服务相对较为简单,精悍。
2.独立部署与扩展,服务的更新不会影响其他服务的运行。
缺点:1.运维成本加大。
2.接口的一致性。
3.复杂性。(网络延迟、事务、异步消息...)
什么是分布式?
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。
关系:
1.微服务将整个产品进行横向切割,按业务或耦合度较高的工作线进行划分;
2.分布式也属于微服务,部署的方式不一样,微服务不一定需要部署在不同的机器上,也可能在单个机器。
3.延伸出来集群,解决单个系统的请求压力。