入门SpringCloud
参考:https://blog.csdn.net/DDDDeng_/article/details/107575351
常见面试题:
1、什么是微服务
2、微服务之间如何通信
3、SpringCloud和Dubbo有哪些区别
4、SpringBoot和SpringCloud,请谈谈对他们的理解
各自的解释:
springCloud:
SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现、配置中心,全链路监控、服务网关、负载均衡、熔断器等,除了基于NetFlix的开源组件做高度抽象的封装之外,还有一些选型中立的开源组件。
SpringBoot:
SpringBoot并没有重复造轮子,它只是将目前各公司开发的比较成熟,经得起实际考验的微服务框架组合起来,通过SpringBoot风格进行再封装,屏蔽掉了复杂配置和实现原理,最终给开发者留出了一套简单易懂,容易部署和易维护的分布式系统开发工具包。
区别联系:
Springboot专注于快速方便的开发单个个体微服务。
SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等集成服务。
SpringBoot可以离开SpringCloud独立使用,开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系
SpringBoot专注于快速、方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架
5、什么是服务熔断?什么是服务降级
6、微服务优缺点分别是什么?说下你下项目开发中遇到的坑
优点:
单一职责原则
每个服务足够内聚,足够小,代码容易理解,这样能聚焦一个指定的业务功能或业务需求;
开发简单,开发效率提高,一个服务可能就是专一的只干一件事;
微服务能够被小团队单独开发,这个小团队是2-5人的开发人员组成;
微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
微服务能使用不同的语言开发。
易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如jenkins, Hudson,bamboo
微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。
微服务允许你利用融合最新技术。
微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面混合
每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库