基础篇
分布式与微服务的区别
分布式侧重点在于分不同服务器部署;微服务侧重点是业务拆分独立部署,至于是不是部署在同一台服务器上,不是侧重点。
分布式
- 使用多台机器进行性能上的优化
- 只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统
- 会引入许多问题
微服务
- 单一职责的。一个微服务应该都是单一职责的,这才是“微”的体现,一个微服务解决一个业务问题(注意是一个业务问题而不是一个接口)。
- 面向服务的。将自己的业务能力封装并对外提供服务,这是继承SOA的核心思想,一个微服务本身也可能使用到其它微服务的能力。
- 会出现服务发现(使用nacos解决),服务配置等问题
区别
- 分布式:分散压力。
- 不同模块部署在不同服务器上;
- 作用:分布式解决网站高并发带来问题;
- 集群:相同的服务;
- 多台服务器部署相同应用构成一个集群;
- 作用:通过负载均衡设备共同对外提供服务;
- SOA[组装服务/ESB企业服务总线];
- 业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
- 通过服务的组合和编排来实现上层的业务流程;
- 作用:简化维护,降低整体风险,伸缩灵活;
- 微服务:分散能力。
- 微服务[找到服务/微服务网关open API];
- 架构设计概念:各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合),其它特性(单一职责,边界,异步通信,独立部署)
- 是分布式概念更加严格的执行;
- SOA到微服务架构的演进过程;
- 作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想).