分布式&微服务

117 阅读2分钟

基础篇

分布式与微服务的区别

分布式侧重点在于分不同服务器部署;微服务侧重点是业务拆分独立部署,至于是不是部署在同一台服务器上,不是侧重点。

分布式

  • 使用多台机器进行性能上的优化
  • 只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统
  • 会引入许多问题

微服务

  • 单一职责的。一个微服务应该都是单一职责的,这才是“微”的体现,一个微服务解决一个业务问题(注意是一个业务问题而不是一个接口)。
  • 面向服务的。将自己的业务能力封装并对外提供服务,这是继承SOA的核心思想,一个微服务本身也可能使用到其它微服务的能力。
  • 会出现服务发现(使用nacos解决),服务配置等问题

区别

  • 分布式:分散压力。
    • 不同模块部署在不同服务器上;
    • 作用:分布式解决网站高并发带来问题;
    • 集群:相同的服务;
    • 多台服务器部署相同应用构成一个集群;
    • 作用:通过负载均衡设备共同对外提供服务;
    • SOA[组装服务/ESB企业服务总线];
    • 业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
    • 通过服务的组合和编排来实现上层的业务流程;
    • 作用:简化维护,降低整体风险,伸缩灵活;
  • 微服务:分散能力。
    • 微服务[找到服务/微服务网关open API];
    • 架构设计概念:各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合),其它特性(单一职责,边界,异步通信,独立部署)
    • 是分布式概念更加严格的执行;
    • SOA到微服务架构的演进过程;
    • 作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想).