Springcloud、分布式和微服务经典面试题

1.什么是分布式

根据功能进行拆分,分散压力。

2.什么是微服务

根据业务进行拆分,分散能力

3.分布式和微服务的区别

架构不同:微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

作用不同:分布式:不同模块部署在不同服务器上,分布式主要解决的是网站高并发带来问题。微服务:各服务可独立应用,组合服务也可系统应用。

粒度不同:微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难。

4.单体架构和微服务的优缺点
  • 上手难度
    • 微服务架构:API接口调用
    • 单体架构:数据库共享或本地程序调用
    • 结论:单体架构胜
  • 开发效率
    • 微服务架构:早期设计和沟通的工作量加大,随着项目规模和时间的推移,效率变化不大
    • 单体架构:早期工作量小,随着项目规模和时间的推移,效率大幅度下降
    • 结论:对于简单项目单体架构胜,对于复杂项目微服务架构胜
  • 系统设计(高内聚,低耦合)
    • 微服务架构:
      • 每个业务单独包装成一个微服务,数据和代码都从物理上隔离开来,实现高内聚低耦合相对容易
    • 单体架构:
      • 以包的形式对代码进行模块划分,控制得当即可实现高内聚
      • 最终都是在数据层面将整个系统耦合在一起
    • 结论:微服务架构胜
  • 系统设计(扩展性)
    • 微服务架构:独立开发新模块,通过API与现有模块交互
    • <

你可能感兴趣的:(面试题,java)